LE *_*ANG 18 keyboard objective-c ios ios8
我想使用自定义和快捷列表,如我的自定义键盘默认英语键盘.我检查键盘文档,但不知道如何使用它.
在键盘文档中.
每个自定义键盘(独立于其RequestsOpenAccess键的值)都可以通过UILexicon类访问基本的自动更正词典.利用此类以及您自己设计的词典,在用户输入文本时提供建议和自动更正.UILexicon对象包含来自各种来源的单词,包括:
如何在Objective-C中访问我们字典中的快捷列表和输入?
如何在requestSupplementaryLexiconWithCompletion中使用UILexicon?
Ge0*_*ges 22
实现词典看起来非常像这样:
requestSupplementaryLexiconWithCompletion()在启动一次时获取词典.NSString(跟踪当前单词)此外,您还可以使用UITextChecker提供更高级的自动更正功能.
代码(在Objective-C中,这可能不是我在公共汽车上写的那样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 = @"";
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果您有任何疑问,请随时发表评论.
来源:iOS 8键盘和UILexicon的个人体验
关于自动更正,我能够使用链接添加它.这是我在链接中使用的代码片段:
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]];
Run Code Online (Sandbox Code Playgroud)
Apple的完整文档可以在这里找到.
| 归档时间: |
|
| 查看次数: |
6459 次 |
| 最近记录: |