5

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

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

我基本上完成了这个。我遇到的最后一个障碍是在我的键盘上添加自动更正。有没有办法让自动更正的行为像在常规系统键盘上一样?

UILexicon文档非常稀少。

编辑:

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

使用这种方法,我可以实现对单个单词的自动更正建议,但我仍在研究添加上下文感知自动更正的能力(例如,将“arctic monkeys”更正为“Arctic Monkeys”)。

4

2 回答 2

1

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

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

这是我从阅读文档中收集到的,我没有对其进行测试,尽管测试它来验证应该不是很困难..

我希望它有帮助

丹尼尔

于 2014-08-30T01:41:04.763 回答
0

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

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

于 2015-04-22T14:10:14.550 回答