8

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

例如,当用户选择一个UITextFieldwith type时,UIKeyboardTypeEmailAddress我打算呈现一个自定义键盘,而当用户选择另一个UITextFieldwith typeUIKeyboardTypeDecimalPad时,我想注意它,并更新我的键盘布局。当键盘类型发生变化以更新键盘布局时,如何得到通知?

4

1 回答 1

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
    }
}
于 2014-10-10T18:29:52.533 回答