我正在为律师制作自定义键盘,并尝试根据用户类型在键盘顶部的建议/预测栏中加载与法律相关的单词。就像在键盘上一样。我一直在搜索,但没有找到任何具体的答案。
我想在txt文件中显示法律相关术语的建议,所有单词都按字母顺序排序。
以下是我的尝试:
UILexicon
let myLexicon = NSMutableDictionary()
self.requestSupplementaryLexiconWithCompletion { (theLexicon: UILexicon!) -> Void in
let lexiconEntries = theLexicon.entries
// Completion handler
for item in lexiconEntries {
self.myLexicon.setObject(item.documentText, forKey: item.userInput)
}
}
此代码只提供23个零对象。
UITextChecker
这是一个iOS类,旨在发现拼写错误,这使得它非常适合于了解给定单词是否真实。这似乎主要是为了自动更正,而不是建议。如果我错了,请纠正我。
我无法以某种方式理解这两个类。
如何告诉自定义键盘,"嘿,如果用户输入" V"显示从V开始的前3个单词,然后如果用户输入a,请使用以" Va"开头的单词填写建议栏。等等。
编辑:看起来有人遇到了同样的问题。以下是他们如何解决问题的引用,一旦我自己完成了这个问题,我将用代码更新。
然而,这远非事实 - 实际上,Apple不允许完全停止访问他们的字典,而是只提供
UILexicon
课程,而不是如他们的文档中所述:利用此课程以及您自己设计的
lexicon
,在用户输入文字时提供建议和自动更正。事实证明,
UILexicon
类实际上只包含联系人姓名以及设备上定义的任何快捷方式(如默认的On My Way!)。因此,在为键盘编写逻辑之前,首先必须实现自己的自动更正库。我们浏览了一些外部项目,看看我们是否可以将它们包含在键盘中 - 最值得注意的是
OpenOffice
使用的Hunspell和智能预测文本库Presage
。我花了很长时间将C ++库与代码集成在一起,但最后,为了降低复杂性,我们选择使用
UITextChecker
(提供一些基本修正)和我们自己的组合自定义词典,包含一些常见的拼写错误的单词。
链接到Article
谢谢!
答案 0 :(得分:2)
您必须实施自己的自动更正系统。 UILexicon只会为您提供用户设置的快捷方式,他们添加到iOS词典中的单词以及联系人姓名。它无法识别您自己提供的任何单词,无论是txt
文件还是其他任何形式。
如果您想使用TOMSSuggestionBar
,那么您可以从示例代码中将您的txt
文件转换为核心数据模型,并在建议栏中指明它是如何使用的是解释该模型的内容。您可能还希望实现数据源协议,以便对建议进行更细粒度的控制。
自动校正和下一个词预测没有解决问题;我建议你做自己的研究,找到最适合你目标的解决方案。