检测iOS 8自定义键盘中的键盘类型更改

时间:2014-09-29 16:57:12

标签: objective-c ios8 ios-app-extension custom-keyboard

我目前正在创建iOS 8自定义键盘扩展程序,我正在寻找一种方法来确定用户何时切换到另一个输入,以便更改我的布局。

例如,当用户选择类型为UITextField的{​​{1}}时,我打算提供自定义键盘,当用户选择类型为UIKeyboardTypeEmailAddress的其他UITextField时,我想注意它,并更新键盘的布局。如何在键盘类型更改时获得通知以更新键盘布局?

1 个答案:

答案 0 :(得分:9)

您可以在textDidChange中检测键盘类型的更改。您需要获取UITextDocumentProxy,然后检查代理keyboardType。如果它是您想要支持的键盘类型,则可以显示相应的UI。例如,这是您检测电子邮件键盘何时显示的方式:

override func textDidChange(textInput: UITextInput) {
    // Called when the document context is changed - theme or keyboard type changes

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