gpt4 book ai didi

ios - 如何在 iOS8 自定义键盘中使用自动更正和快捷键列表?

转载 作者:可可西里 更新时间:2023-11-01 06:14:50 26 4
gpt4 key购买 nike

我想在我的自定义键盘上使用自动更正和快捷键列表,例如默认英文键盘。我查看了键盘文档,但不知道如何使用它。

keyboard documentation .

每个自定义键盘(独立于其 RequestsOpenAccess 键的值)都可以通过 UILexicon 类访问基本的自动更正词典。利用此类以及您自己设计的词典,在用户输入文本时提供建议和自动更正。 UILexicon 对象包含来自各种来源的单词,包括:

  • 用户地址簿数据库中未配对的名字和姓氏
  • 在“设置”>“通用”>“键盘”>“快捷方式”列表中定义的文本快捷方式
  • 常用词词典

如何在 Objective-C 中访问我们字典中的快捷方式列表和输入?

如何将 UILexicon 与 requestSupplementaryLexiconWithCompletion 一起使用?

最佳答案

实现词典看起来很像这样:

  1. 使用 requestSupplementaryLexiconWithCompletion() 在启动时获取词典一次。
  2. 输入的每个类型文本将其添加到 NSString(跟踪当前单词)
  3. 当用户按下空格键(当前单词的末尾)时,根据词典检查字符串
  4. 如果匹配则计算字符数并删除该字符数
  5. 输入词库建议的建议
  6. 清空字符串重新开始

此外,您还可以使用 UITextChecker 来提供更高级的自动更正功能。

代码(在 Objective-C 中,我在公交车上用 SO 写的可能不是 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 = @"";
}
}
}

如果您有任何问题,请随时发表评论。

来源:iOS 8 键盘和 UILexicon 的个人经验

关于ios - 如何在 iOS8 自定义键盘中使用自动更正和快捷键列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26311453/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com