为什么textDidChange中的textInput.keyboardType为nil?

时间:2014-10-10 18:06:58

标签: ios swift ios8 ios-app-extension custom-keyboard

我正在开发Swift中的自定义键盘,我想知道键盘类型何时更改(例如数字或小数键盘类型)。我认为这应该在textDidChangetextWillChange中完成。此方法会收到UITextInput,其属性为keyboardType。但是当调用此方法时,该属性似乎始终为nil,因为即使在我输入了不同的输入类型(数字)之后,它也从不运行以下代码。

override func textDidChange(textInput: UITextInput) {
    if let inputType = textInput.keyboardType {
        //never gets here
        deleteKeyboardButton.backgroundColor = UIColor.yellowColor()
    }
}

1 个答案:

答案 0 :(得分:0)

我发现您必须获取UITextDocumentProxy并使用其keyboardType属性,而不是textInput的属性。

var proxy = self.textDocumentProxy as UITextDocumentProxy
if proxy.keyboardType == UIKeyboardType.EmailAddress {
    //add code here to display email input keyboard
}