iOS 8中具有原生预测的自定义键盘

时间:2014-12-21 16:32:28

标签: ios ios8 keyboard ios-app-extension

目标:使用QuickType(Predictive)为俄语lang创建一个自定义键盘,它应该看起来像本机(我不能发布图像,因为声誉很小,但我想这很明显可以理解)有一些变化:自己的算法到显示单词;用户可以从3个以上的选项中进行选择

我发现它不能通过标准功能完成(例如“将某些属性设置为快速类型为YES”),但可能存在另一种方法吗?例如创建自定义视图或smth,所以问题是:

我可以通过自定义视图(高度大于“215 +/- px”)这样做还是有其他方式? Apple会接受吗?

UPD 自定义看起来与原生一样重要。

4 个答案:

答案 0 :(得分:0)

您可以将自定义单词完成视图添加为键盘的子视图(与为按键添加按钮的方式相同)。当然,您需要增加键盘的高度,以便为完成视图提供额外的高度。

Apple Documentation

  

您可以使用“自动布局”调整自定义键盘主视图的高度。默认情况下,根据屏幕大小和设备方向,自定义键盘的大小可与系统键盘匹配。系统始终将自定义键盘的宽度设置为等于当前屏幕宽度。要调整自定义键盘的高度,请更改其主视图的高度约束。

您还可以在该页面上找到代码示例。我认为Apple没有理由拒绝基于你所描述的内容。

答案 1 :(得分:0)

可以改变高度。看看这个问题iOS 8 Custom Keyboard: Changing the Height

您可以提供自定义视图来显示预测。 '触宝'在App Store中可能对您有所帮助。 ' Touchpal'英文键盘具有一些QuickType功能,就像系统键盘一样。

答案 2 :(得分:0)

您的自定义键盘外观和预测机制(类似QuickType)都是您的责任。没有办法只复制或启用某些东西。你应该从头开始编程另一个绝对相同的键盘和另一个类似QuickType的算法。 iOS8只为您提供了可以更改高度的空视图。

答案 3 :(得分:0)

查看UILexicon对象,尤其是UITextChecker

UITextChecker *checker = [[UITextChecker alloc] init];
NSRange checkRange = NSMakeRange(0, text.length);
NSRange misspelledRange = [checker rangeOfMisspelledWordInString:text 
                                                           range:checkRange
                                                      startingAt:checkRange.location
                                                            wrap:NO 
                                                        language:@"en_US"];
NSArray *arrayCorrected = [checker guessesForWordRange:misspelledRange 
                                              inString:text 
                                              language:@"en_US"];
return [arrayCorrected objectAtIndex:0];

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITextChecker_Class/index.html