iOS 自定义键盘,来自 txt 文件的建议

iOS Custom Keyboard, Suggestions from txt file

我正在为律师制作自定义键盘,并尝试根据用户输入的内容在键盘顶部的 suggestion/prediction 栏中加载与法律相关的词。就像股票键盘一样。我四处搜寻但没有找到任何具体答案。
我想显示我在 txt 文件中的法律相关术语的建议,所有单词都按字母顺序排序。

DEMO

这是我尝试过的: 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 个 nil 对象。

UITextChecker 这是一个 iOS class,旨在发现拼写错误,非常适合判断给定单词是否真实。这似乎主要是为了自动更正,而不是为了建议。有错请指正

我无法理解这两个 classes。

我如何告诉自定义键盘,“嘿,如果用户输入“V”显示前 3 个以 V 开头的单词,然后如果用户输入 a,则用以“Va”开头的单词填充建议栏等等上。

编辑:
看起来有人 运行 遇到了同样的问题。这是他们如何解决它的引用,一旦我自己解决了这个问题,我将更新代码。

However, this was far from the truth - in fact, Apple do not allow access to their dictionary full stop, only offering a UILexicon class instead as stated in their docs:

Make use of this class, along with a lexicon of your own design, to provide suggestions and autocorrections as users are entering text.

事实证明,UILexicon class 仅真正包含联系人姓名以及设备上定义的任何快捷方式(例如默认的 On My Way!)。因此,在编写键盘逻辑之前,您首先必须实现自己的自动更正库。

我们浏览了一些外部项目,看看是否可以将它们包含在键盘中 - 最著名的是 OpenOffice 使用的 Hunspell,以及智能预测文本库 Presage

我花了很长时间将 C++ 库与代码集成,但最后,为了降低复杂性,我们选择结合使用 UITextChecker(它提供了一些基本的更正)和我们自己的自定义词典,包含一些经常拼错的单词。

Link 到 Article

谢谢!

您必须实施自己的自动更正系统。 UILexicon 只会为您提供用户设置的快捷方式、他们添加到 iOS 词典中的单词以及联系人姓名。它不知道您自己提供的任何单词,无论是在 txt 文件中还是以任何其他形式。

如果您想使用TOMSSuggestionBar,从示例代码看来,您有责任将您的txt文件转换为核心数据模型,并在建议栏中指出如何解释该模型的内容。您可能还想实施数据源协议以获得对建议的更细粒度控制。

自动纠错和下词预测未解决问题;我建议您自己研究并找到最适合您目标的解决方案。