在自定义键盘扩展中,我们无法使用
`didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation`
Run Code Online (Sandbox Code Playgroud)
和sharedApplication.
我需要在旋转时检测键盘上的纵向或横向.
如何在Custom Keyboard扩展中检测方向更改?
ios8 ios-app-extension uiinputviewcontroller custom-keyboard
我想制作一个仅在我的应用程序中使用的自定义键盘,而不是需要安装的系统键盘.
文档
上面的第一篇文章指出:
确保自定义的系统范围键盘确实是您想要开发的.为了仅为您的应用提供完全自定义的键盘,或仅在您的应用中使用自定义键补充系统键盘,iOS SDK提供了其他更好的选择.在iOS文本编程指南的"数据输入自定义视图"中阅读有关自定义输入视图和输入附件视图的信息.
这就是我上面第二篇文章的原因.但是,那篇文章没有足够的细节让我开始.
教程
我能够从上面列表中的第二个教程中获得一个工作键盘.但是,我找不到任何教程,这些教程展示了如何制作一个仅限应用程序的键盘,如数据输入自定义视图文档中所述.
堆栈溢出
在回答当前问题的路上,我也问了(并回答了)这些问题.
有没有人在应用程序自定义键盘中有一个最小的例子(甚至一个按钮)?我不是在寻找一个完整的教程,只是一个概念证明,我可以扩展自己.
禁用键预览很容易:只需调用setPreviewEnabled(false),这些烦人的小预览就不会再出现了.但是如果我将一个弹出式键盘附加到任何键上,那么这些预览将显示在该弹出窗口中:
qwerty.xml:
<Key android:codes="101"
android:keyLabel="E"
android:popupKeyboard="@xml/popup"
android:keyTextSize="60sp"/>
Run Code Online (Sandbox Code Playgroud)
popup.xml:
<Row>
<Key android:codes="-10000"
android:keyLabel="test"
android:keyOutputText="test"/>
</Row>
<Row>
<Key android:codes="-10001"
android:keyLabel="test2"
android:keyOutputText="test2"/>
</Row>
Run Code Online (Sandbox Code Playgroud)
无法发布图片,但如果我长按字母'E'然后按test或test2按钮,他们将显示白键预览.
有没有办法禁用这些关键预览呢?
我用自己创建了自定义键盘UIView.但是我没有听到键盘的咔嗒声.所以我尝试了以下代码.但是我听不到任何声音.如何播放键盘咔嗒声?
NSURL* musicFile = [NSURL fileURLWithPath:[[NSBundle mainBundle]
pathForResource:@"Tock"
ofType:@"aiff"]];
AVAudioPlayer *click = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile error:nil];
[click setVolume:0.15f];
[click play];
Run Code Online (Sandbox Code Playgroud)
我也尝试了下一个.
AudioServicesPlaySystemSound(0x450);
Run Code Online (Sandbox Code Playgroud)
我怎么能够?
我想在iOS8自定义键盘中创建弹出窗口,如下图所示.

有些代码正在工作但无法访问键盘的外窗并发生问题,如下图2所示

我想在Itunes Connect上上传使用自定义键盘扩展的构建但是当我要通过Application loader将它上传到Itunes Connect时,它会显示我的错误
ERROR ITMS-9000: "Invalid architecture: Apps that include an app extension and a framework must support arm64
Run Code Online (Sandbox Code Playgroud)
我已经在键盘扩展目标和app目标中为"Armv7",armv7s,arm64添加了有效的架构.但我仍然面临同样的问题

我现在正在使用iOS 8自定义键盘扩展,使用UITextInputDelegate方法时存在一些问题.
这是否正确:selectionWillChange:和selectionDidChange:当用户长按输入区域时应该调用方法?并且textWillChange:和textDidChange:方法应该在文本字面改变时调用?
实际上,我观察到的是,当我在文本输入区域中更改选择时,会调用textWillChange:和textDidChange:,并且我无法得到其他两个方法在什么条件下被调用的线索.如果有人知道这些委托方法的用法,请告诉我.
更新到Xcode 6.1后,我在iOS8.1模拟器的Safari中丢失了自定义键盘.但它仍然出现在照片应用程序中.照片应用可以切换到我的自定义键盘,但Safari仍然显示英语和表情符号,其他系统键盘如阿拉伯语也无法正常工作.我重置模拟器,但没有工作.iOS8.1中的Safari看起来没什么变化.我试着清除DerivedData文件夹,但没有任何帮助.我删除Xcode并从Appstore重新安装,也不工作.
我必须在我的设备上测试,太奇怪了.有没有人有同样的问题?请帮忙解决这个问题.
我正在编写自定义键盘.当我在设置中添加键盘时,我看到了这样的.它显示英语.
是否可以将"英语"改为其他?是在plist?或者我可以在哪里更改?

我做了一个自定义键盘.当您长按一个键时,会PopupWindow在键上方显示一些额外的选项.问题是在API 28中,此弹出窗口被剪裁(甚至完全隐藏在顶行).
popupWindow.setClippingEnabled(false);
Run Code Online (Sandbox Code Playgroud)
但是,对于API 28,问题又回来了.这是更多的代码:
private void layoutAndShowPopupWindow(Key key, int xPosition) {
popupWindow = new PopupWindow(popupView,
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
popupWindow.setClippingEnabled(false);
int location[] = new int[2];
key.getLocationInWindow(location);
int measureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
popupView.measure(measureSpec, measureSpec);
int popupWidth = popupView.getMeasuredWidth();
int spaceAboveKey = key.getHeight() / 4;
int x = xPosition - popupWidth / popupView.getChildCount() / 2;
int screenWidth = getScreenWidth();
if (x < 0) {
x = 0;
} else if (x + popupWidth > screenWidth) {
x = …Run Code Online (Sandbox Code Playgroud) custom-keyboard ×10
ios8 ×6
ios ×5
android ×2
architecture ×1
cocoa-touch ×1
iphone ×1
keyboard ×1
keypreview ×1
objective-c ×1
swift ×1