在iOS 8键盘扩展中实现自动更正

时间:2014-08-29 22:18:59

标签: ios keyboard ios8 ios-app-extension uilexicon

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

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

我在很大程度上完成了这件事。我遇到的最后一个障碍是在键盘上添加自动更正功能。有没有一种方法可以让自动更正的行为与在常规系统键盘上的行为相同?

UILexicon documentation非常稀疏。

编辑:

在此方面取得一些进展。 UILexicon的requestSupplementaryLexiconWithCompletion:方法似乎只返回我设备的通讯录和键盘快捷键的结果。然后我继续看看如何自动更正NSString并找到UITextChecker class,它已经从iOS 3.2开始提供。

使用这种方法,我可以对单个单词实现自动更正建议,但我仍然在调查添加上下文感知自动更正的能力(例如纠正"北极猴"到#34; Arctic Monkeys& #34;。)

2 个答案:

答案 0 :(得分:1)

从文档中,UILexicon似乎是帮助您创建自己的自动更正,UILexicon有一堆包含字符串对的UILexiconEntry条目,该条目包含{ {1}}我认为它应该是用户输入的字符串,我假设的userInput是您应该用该替换输入的内容。您可以使用documentText从UIInputViewController获取此UILexicon。

我假设UIInputViewController知道写入documentProxy的是什么,因为它是传递这些消息的那个,这就是它如何知道用户输入的内容以及返回UILexicon中的内容..

这是我从阅读文档中收集的内容,我没有对其进行过测试,但是测试它并不是很难以验证..

我希望它有所帮助

丹尼尔

答案 1 :(得分:0)

查看这个简单但非常有效的自动正确实现 http://norvig.com/spell-correct.html

对于自动完成,您可以实现trie。