Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS 8中具有本机预测功能的自定义键盘_Ios_Ios8_Keyboard_Ios App Extension - Fatal编程技术网

iOS 8中具有本机预测功能的自定义键盘

iOS 8中具有本机预测功能的自定义键盘,ios,ios8,keyboard,ios-app-extension,Ios,Ios8,Keyboard,Ios App Extension,其目标是:为俄语语言创建一个自定义键盘,使用QuickType(预测型),该键盘应该看起来像本地键盘(我不能发布图像,因为名声不好,但我想这很容易理解),并进行一些更改:使用自己的算法显示单词;用户可以从3个以上选项中进行选择 我发现它不能通过标准特性(比如“将quickType之类的属性设置为YES”)来实现,但可能存在其他方法来实现吗?e、 g.创建自定义视图或类似的smth,因此问题是: 我可以通过自定义视图(高度大于“215+/-px”)或其他方式来执行此操作吗?那么苹果会接受吗 UPD

其目标是:为俄语语言创建一个自定义键盘,使用QuickType(预测型),该键盘应该看起来像本地键盘(我不能发布图像,因为名声不好,但我想这很容易理解),并进行一些更改:使用自己的算法显示单词;用户可以从3个以上选项中进行选择

我发现它不能通过标准特性(比如“将quickType之类的属性设置为YES”)来实现,但可能存在其他方法来实现吗?e、 g.创建自定义视图或类似的smth,因此问题是:

我可以通过自定义视图(高度大于“215+/-px”)或其他方式来执行此操作吗?那么苹果会接受吗


UPD定制外观与本地外观完全一致非常重要

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

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


您还可以在该页面上找到代码示例。我看不出苹果会根据你的描述拒绝的理由。

改变高度是可能的。看看这个问题


您可以提供一个自定义视图来显示预测。”应用商店中的Touchpal可能会对您有所帮助。“Touchpal”英文键盘具有一些QuickType功能,就像系统键盘一样

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

查看
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];

UITextChecker不能正确使用俄语,UILexicon用于从iPhone获取用户数据(如地址、姓名等)