你如何在目标C中使用UILexicon?我发现苹果提供的文档是非常没有帮助的。
是干什么的呢?它是返回字典还是拼写正确的单词?或者,我是否提供了一个像"hellllo“这样的单词,并将其与正确的拼写"Hello”进行匹配,并将其作为字符串返回?
任何帮助都将不胜感激。
requestSupplementaryLexiconWithCompletion:
这是我的错误报告,但显然我会有错误,因为我完全在猜测如何使用函数,而不知道块语句中包含了什么(因为docs (当时)没有说!(贝塔4博士)哈哈!

发布于 2014-07-23 19:55:21
我从来没有使用过这个功能,但是对"UILexicon“的快速网络搜索使我在苹果的文档中找到了它;在那里阅读和跟踪链接的速度相当快。
每个自定义键盘(独立于其
RequestsOpenAccess键的值)都可以通过UILexicon类访问一个基本的自动更正词典。使用这个类,连同你自己设计的词典,在用户输入文本时提供建议和自动更正。
点击页面上的UILexicon链接,我就可以找到那个类的参考文档,这解释了这是一个苹果提供的术语对的只读列表。它的每个条目都是一个UILexiconEntry对象--该类的文档表示它提供了一个userInput (用户输入的内容,例如"iPad")和一个documentText (替代它的东西,例如"ipad")。由于这些类是只读的,因此它们可能不是提供您自己的自动校正对的方法--正如docs中所述,它们用于补充您实现的任何自动更正系统。
在这一点上,我甚至不需要查看requestSupplementaryLexiconWithCompletion:的文档就可以很好地了解如何使用它:声明告诉我:
UIInputViewController上的一个方法,我需要子类来创建自定义键盘。在这个子类中的某个位置,我可能应该在self上调用它。void,所以我不能通过将requestSupplementaryLexiconWithCompletion调用的结果赋值给变量来获得词汇表。UILexicon对象作为参数传递给该块。因此,我猜想,如果我正在编写自定义键盘,我会在早期(可能在viewDidLoad中)调用这个方法,并保存它提供的UILexicon,以便在用户键入时可以引用它。就像这样:
@property UILexicon *lexicon;
- (void)viewDidLoad {
[super viewDidLoad];
[self requestSupplementaryLexiconWithCompletion:^(UILexicon *lexicon){
self.lexicon = lexicon;
}];
}因为还不清楚requestSupplementaryLexiconWithCompletion需要多长时间才能完成,所以无论我在哪里使用self.lexicon,都应该检查它是否是nil。
在应用程序扩展编程指南()中,它在“iOS用户期望的键盘功能”下列出了“自动更正和建议”,然后说:
您可以决定是否实现这些特性;对于刚才列出的任何特性,您都没有专用的API。
因此,听起来自动更正是您自己必须做的事情,使用您自己的UI,这是UIInputViewController子类提供的视图的一部分。编程指南中的API Quick Start for Custom Keyboards部分似乎暗示了您将如何做到这一点:使用documentContextBeforeInput查看用户最近输入的内容,使用deleteBackward删除它,使用insertText:插入更正。
https://stackoverflow.com/questions/24916369
复制相似问题