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

时间:2015-08-10 18:44:22

标签: ios objective-c swift ios8 custom-keyboard

我正在为律师制作自定义键盘,并尝试根据用户类型在键盘顶部的建议/预测栏中加载与法律相关的单词。就像在键盘上一样。我一直在搜索,但没有找到任何具体的答案。
我想在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个零对象。

UITextChecker这是一个iOS类,旨在发现拼写错误,这使得它非常适合于了解给定单词是否真实。这似乎主要是为了自动更正,而不是建议。如果我错了,请纠正我。

我无法以某种方式理解这两个类。

如何告诉自定义键盘,"嘿,如果用户输入" V"显示从V开始的前3个单词,然后如果用户输入a,请使用以" Va"开头的单词填写建议栏。等等。

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

  

然而,这远非事实 - 实际上,Apple不允许完全停止访问他们的字典,而是只提供UILexicon课程,而不是如他们的文档中所述:

     
    
      

利用此课程以及您自己设计的lexicon,在用户输入文字时提供建议和自动更正。

    
  
     

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

     

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

     

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

链接到Article

谢谢!

1 个答案:

答案 0 :(得分:2)

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

如果您想使用TOMSSuggestionBar,那么您可以从示例代码中将您的txt文件转换为核心数据模型,并在建议栏中指明它是如何使用的是解释该模型的内容。您可能还希望实现数据源协议,以便对建议进行更细粒度的控制。

自动校正和下一个词预测没有解决问题;我建议你做自己的研究,找到最适合你目标的解决方案。