Alb*_*haw 4 objective-c ios ios8 uilexicon custom-keyboard
你如何在Objective-C中使用UILexicon?我发现Apple提供的文档非常无用.
它有什么作用?它会返回字典或正确的单词拼写吗?或者我提供像"hellllo"这样的单词,并将其与正确的拼写"Hello"匹配并将其作为字符串返回?
任何帮助,将不胜感激.
requestSupplementaryLexiconWithCompletion:
这是我的错误报告,但显然我会有错误,因为我完全猜测如何使用该函数,不知道块语句内部的内容(因为文档(当时)没有说!(Beta 4 docs) ))哈哈哈!
ric*_*ter 14
我从来没有使用过这个功能,但是对"UILexicon"的快速网络搜索使我获得了Apple的文档; 阅读和跟随链接从那里填写图片非常快.
App Extension编程指南快速解释了词典的用途:
每个自定义键盘(独立于其
RequestsOpenAccess
键的值)都可以通过UILexicon
类访问基本的自动更正词典.利用此类以及您自己设计的词典,在用户输入文本时提供建议和自动更正.
单击UILexicon
该页面上的链接将我带到该类的参考文档,这解释了它是Apple提供的术语对的只读列表.它的每个条目都是一个UILexiconEntry
对象 - 该类的文档说它提供了一个userInput
(用户输入的内容,例如"ipad")和一个documentText
(替代它的内容,例如"iPad").由于这些类是只读的,因此它们可能不是您提供自己的自动更正对的方式 - 如文档中所述,它们用于补充您实现的任何自动更正系统.
在这一点上,我甚至不需要查看文档requestSupplementaryLexiconWithCompletion:
来获得如何使用它的好主意:只是声明告诉我:
UIInputViewController
,我必须创建一个自定义键盘的类.在那个子类的某个地方,我应该把它叫做self
.void
,所以我不能通过将requestSupplementaryLexiconWithCompletion
调用的结果赋给变量来获得词典.UILexicon
对象作为参数传递给该块.所以,我猜测如果我正在编写一个自定义键盘,我会尽早调用此方法(viewDidLoad
也许是),并将UILexicon
其保存,以便稍后在用户输入时可以引用它.像这样的东西:
@property UILexicon *lexicon;
- (void)viewDidLoad {
[super viewDidLoad];
[self requestSupplementaryLexiconWithCompletion:^(UILexicon *lexicon){
self.lexicon = lexicon;
}];
}
Run Code Online (Sandbox Code Playgroud)
因为目前还不清楚需要多长时间requestSupplementaryLexiconWithCompletion
才能完成,我正在使用的任何地方self.lexicon
都应该检查一下nil
.
回到App Extension编程指南,它列出了"iOS用户期望的键盘功能"下的"自动更正和建议",然后说:
您可以决定是否实施此类功能; 没有专门的API用于刚刚列出的任何功能
所以听起来像自动修正是你必须自己做的事情,你自己的UI是你的UIInputViewController
子类提供的视图的一部分.编程指南中的" 自定义键盘的API快速入门"部分似乎暗示了如何执行此操作:用于documentContextBeforeInput
查看用户最近键入的内容,deleteBackward
删除它以及insertText:
插入更正.
归档时间: |
|
查看次数: |
3655 次 |
最近记录: |