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

5

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

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

我已经大部分完成了。我遇到的最后一个障碍是在我的键盘中添加自动更正功能。是否有一种方法可以让自动更正像常规系统键盘上那样运行?

UILexicon文档非常简洁。

编辑:

正在取得一些进展。 UILexicon 的requestSupplementaryLexiconWithCompletion:方法似乎只返回我的设备的联系人和键盘快捷方式的结果。然后我学习了如何自动更正 NSString,并找到了自 iOS 3.2 起可用的UITextChecker类
使用这种方法,我可以在单词上实现自动更正建议,但我仍在研究添加上下文感知的自动更正能力(例如将“arctic monkeys”更正为“Arctic Monkeys”)。

我一直以为自动更正是由字段本身处理的,不是吗? - Mike
@MoatazHossam自我的编辑以来没有什么新内容。 - Kiran Panesar
2个回答

1
根据文档,UILexicon 似乎是帮助你创建自己的自动更正功能的。 UILexicon 包含一堆 UILexiconEntry 条目,其中包含字符串对,该条目包含一个 userInput 字符串,我认为这应该是用户输入的内容,以及 documentText,我认为这是您应该用来替换该输入的内容。您可以使用从 UIInputViewController 调用的 func requestSupplementaryLexiconWithCompletion(_ completionHandler: ((UILexicon!) -> Void)!) 来获取此 UILexicon。
我假设 UIInputViewController 知道已写入 documentProxy 的内容,因为它是传递这些消息的人,这就是它知道用户输入的内容并相应地将其放入 UILexicon 中的方式。
这是我从阅读文档中获得的信息,虽然我尚未测试过,但验证这一点应该不难。
希望能有所帮助。
Daniel

是的,我花了一些时间研究UILexicon,它似乎只返回用户定义的快捷方式和联系人的结果。它没有从默认系统字典中提取任何数据。 - Kiran Panesar
@KiranPanesar 你如何设置自己的自定义字典?我想创建一个带有键值对的NSDictionary,但是在性能方面,UILexicon更好吗?感觉几乎没有文档或详细的示例。 - KingPolygon
1
ж–№жі•requestSupplementaryLexiconWithCompletion:始终иү”е›һз›ёеђЊзљ„ж•°з»„гЂ‚е®ѓеҮ№дғҺи‡ҒеЉЁж›өж­ӘеЉџиѓҢжІҰ有用处。 - Tony

0

请提供一些关于为什么以及如何帮助的信息。此外,如果链接失效,请在此处复制一些信息。 - xlecoustillier
1
各位,你们正在走向泥泞的水域。这不是一项简单的任务! - Randy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接