【问题标题】:Custom keyboard with native prediction in iOS 8iOS 8 中带有本机预测的自定义键盘
【发布时间】:2015-02-19 21:13:10
【问题描述】:

目标:使用 QuickType(Predictive)为俄语语言创建一个自定义键盘,该键盘应该看起来像原生(我无法发布图像,因为声誉低,但我想这很容易理解)并进行了一些更改:自己的算法显示单词;用户可以从 3 个以上的选项中进行选择

我发现标准功能无法做到这一点(例如“将某些属性设置为 quickType 为 YES”),但可能存在另一种方法来做到这一点?例如创建自定义视图或类似的东西,所以问题是:

我可以通过自定义视图(高度大于“215 +/- px”)还是有其他方式来做到这一点?那么苹果会接受吗?

UPD 自定义看起来与本机完全一样很重要。

【问题讨论】:

    标签: ios ios8 keyboard ios-app-extension


    【解决方案1】:

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

    Apple Documentation

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

    您还可以在该页面上找到代码示例。根据您的描述,我认为 Apple 没有理由拒绝。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

          看看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

          【讨论】:

          • UITextChecker 不能正常使用俄语,UILexicon 用于从 iPhone 获取用户数据(例如地址、姓名等)
          猜你喜欢
          • 1970-01-01
          • 2014-08-11
          • 2014-11-24
          • 1970-01-01
          • 2015-02-20
          • 1970-01-01
          • 2023-03-30
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多