我正在为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)
没有成功。这不是我,而是她。
谢谢!
答案 0 :(得分:0)
您应该使用textDocumentProxy
的{{1}}属性:
UIInputViewController
要输入单词,我会建议这样的内容:
let proxy = self.textDocumentProxy as! UITextDocumentProxy