iOS 自定义键盘,来自 txt 文件的建议
iOS Custom Keyboard, Suggestions from txt file
我正在为律师制作自定义键盘,并尝试根据用户输入的内容在键盘顶部的 suggestion/prediction 栏中加载与法律相关的词。就像股票键盘一样。我四处搜寻但没有找到任何具体答案。
我想显示我在 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 个 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
文件转换为核心数据模型,并在建议栏中指出如何解释该模型的内容。您可能还想实施数据源协议以获得对建议的更细粒度控制。
自动纠错和下词预测未解决问题;我建议您自己研究并找到最适合您目标的解决方案。
我正在为律师制作自定义键盘,并尝试根据用户输入的内容在键盘顶部的 suggestion/prediction 栏中加载与法律相关的词。就像股票键盘一样。我四处搜寻但没有找到任何具体答案。
我想显示我在 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 个 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
文件转换为核心数据模型,并在建议栏中指出如何解释该模型的内容。您可能还想实施数据源协议以获得对建议的更细粒度控制。
自动纠错和下词预测未解决问题;我建议您自己研究并找到最适合您目标的解决方案。