我正在创建一个自定义的iOS 8键盘作为宠物项目。

我正在尝试尽可能准确地复制系统键盘,但要从头开始构建它。

我已经基本完成了。我遇到的最后一个障碍是在键盘上添加自动更正。有什么办法可以使自动更正的行为与常规系统键盘上的行为相同?

UILexicon documentation非常稀疏。

编辑:

在此方面取得一些进展。 UILexicon的 requestSupplementaryLexiconWithCompletion: 方法似乎只从设备的“联系人”和键盘快捷键返回结果。然后,我继续查看如何自动更正NSString并找到了UITextChecker class,它从iOS 3.2开始就可用。

使用这种方法,我可以获得单个单词的自动更正建议,但我仍在研究添加上下文感知自动更正的功能(例如,将“北极猴”更正为“北极猴”)。

最佳答案

从文档中看,UILexicon似乎可以帮助您创建自己的自动更正,UILexicon具有一堆包含String对的UILexiconEntry条目,该条目包含userInput String(我认为它应该是用户输入的字符串)和documentText我认为这是您应该用该输入替换的内容。您可以使用来自UIInputViewController的func requestSupplementaryLexiconWithCompletion(_ completionHandler: ((UILexicon!) -> Void)!)来获取此UILexicon。

我假设UIInputViewController知道什么已经写入documentProxy中,因为它是中继这些消息的那个,这就是它如何知道用户输入了什么,并返回了要放入UILexicon中的内容。

这是我从阅读文档中收集的信息,虽然还不难测试,但我尚未对其进行测试。

希望对您有所帮助

丹尼尔

关于ios - 在iOS 8键盘扩展中实现自动更正,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25577002/

10-10 09:10