我想使用自动更正和快捷方式列表,像默认英语键盘与我的自定义键盘。我检查了键盘文档,但不知道如何使用它。
在键盘文档中。
每个自定义键盘(独立于其RequestsOpenAccess键的值)都可以通过UILexicon类访问一个基本的自动更正词典。使用这个类,连同你自己设计的词典,在用户输入文本时提供建议和自动更正。UILexicon对象包含各种来源的单词,包括:
如何在Objective?中访问我们的字典中的快捷列表和输入
如何在requestSupplementaryLexiconWithCompletion?中使用UILexicon
发布于 2014-11-13 19:24:52
实现词汇表的方式大致如下所示:
requestSupplementaryLexiconWithCompletion()在启动时获得词典一次。NSString (跟踪当前单词)此外,您还可以使用UITextChecker提供更高级的自动更正功能。
代码(在Objective中,这可能不是我在总线上写的100%的准确性,但它应该这样做):
UILexicon *lexicon;
NSString *currentString;
-(void)viewDidLoad {
[self requestSupplementaryLexiconWithCompletion:^(UILexicon *receivedLexicon) {
self.lexicon = receivedLexicon;
}];
}
-(IBAction)myTypingAction:(UIButton *)sender {
[documentProxy insertText:sender.title];
[currentString stringByAppendingString:sender.title];
}
-(IBAction)space {
[documentProxy insertText:@" "];
for (UILexiconEntry *lexiconEntry in lexicon.entries) {
if (lexiconEntry.userInput isEqualToString:currentString) {
for (int i = 0; currentString.length >=i ; i++) {
[documentProxy deleteTextBackwards];
}
[documentProxy insertText:lexiconEntry.documentText];
currentString = @"";
}
}
}如果你还有任何问题,请随时发表评论。
资料来源:使用8键盘和UILexicon的个人经验。
发布于 2015-08-19 15:23:18
关于自动校正,我可以使用链接添加它.下面是我从链接中使用的代码片段:
UITextChecker *checker = [[UITextChecker alloc] init];
NSRange checkRange = NSMakeRange(0, self.txView.text.length);
NSRange misspelledRange = [checker rangeOfMisspelledWordInString:self.txView.text
range:checkRange
startingAt:checkRange.location
wrap:NO
language:@"en_US"];
NSArray *arrGuessed = [checker guessesForWordRange:misspelledRange inString:self.txView.text language:@"en_US"];
self.txView.text = [self.txView.text stringByReplacingCharactersInRange:misspelledRange
withString:[arrGuessed objectAtIndex:0]];苹果的全部文档都可以找到这里。
发布于 2014-07-24 19:40:43
虽然我个人还没有尝试创建一个自定义键盘,但我的回答是基于我在文档中看到的内容。
在键盘中,创建一个名为entries的属性,类型为[AnyObject] (AnyObjects数组)。
在init方法中,或在创建键盘的地方,调用此方法:
requestSupplementaryLexiconWithCompletion(completionHandler: {
lexicon in
self.entries = lexicon.entries
})我怀疑entries实际上是一个String或NSStrings数组,但它可能是一个字典或其他类型。在测试这一点时,试着在找出您的逻辑之前,先找出entries中包含的类型。
我认为目前没有办法获得苹果默认的自动更正选项。然而,这个WWDC谈话提供了关于他们是如何在原始的iPhone操作系统中进行自动更正的(大约30分钟)。
他提到使用数组的二进制搜索,这使我相信这个数组是排序的。当然,自从第一次iPhone问世后可能会有很大的变化.
祝你好运,找到这个新的API!
https://stackoverflow.com/questions/24627616
复制相似问题