如何输入当前单词?

时间:2015-07-29 13:00:34

标签: ios swift custom-keyboard uiinputviewcontroller

我正在为iOS 8制作一个自定义键盘扩展程序,并且试图反映当前在键盘顶部的UILabel上键入的单词(想想自动更正)是不成功的。到目前为止,我编写的代码反映了光标之前的句子而不是它正在被写入,但是当光标从一个位置移动到另一个位置时。我想要实现的就像本机键盘中的第一个自动更正框。有人会介意告诉我我做错了吗?

代码:

override func textWillChange(textInput: UITextInput) {

    var tokens = (self.textDocumentProxy as! UITextDocumentProxy).documentContextBeforeInput .componentsSeparatedByString(" ") as NSArray
    var lastWord = tokens.lastObject as! String
    println(lastWord)
    bannerView?.btn1.setTitle(lastWord, forState: .Normal)
 }

我已经尝试设置一个条件,如果beforeCursor包含空格/句点/逗号将按钮标题设置为""但是从长远来看效率不高,因为我需要获取单词以便能够进行自动更正功能。

修改

我已经想出如何在光标之前获取单词(更新上面的代码),但不知道如何在添加每个字母时更新标签。 func textWillChange(textInput: UITextInput)没有成功。这不是我,而是她。

谢谢!

1 个答案:

答案 0 :(得分:0)

您应该使用textDocumentProxy的{​​{1}}属性:

UIInputViewController

要输入单词,我会建议这样的内容:

let proxy = self.textDocumentProxy as! UITextDocumentProxy