我目前正在创建iOS 8自定义键盘扩展程序,我正在寻找一种方法来确定用户何时切换到另一个输入,以便更改我的布局。
例如,当用户选择类型为UITextField
的{{1}}时,我打算提供自定义键盘,当用户选择类型为UIKeyboardTypeEmailAddress
的其他UITextField
时,我想注意它,并更新键盘的布局。如何在键盘类型更改时获得通知以更新键盘布局?
答案 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
}
}