iPhone SDK:如何在UIKeyboardDidShowNotification中确定键盘类型?

时间:2011-01-08 17:49:49

标签: iphone

我需要知道当前的键盘类型。我在

中设置了一个实例变量
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField

但是,测试表明,由于通知的异步性,这并不总是可靠的。

我想知道的是,是否有人可以告诉我如何确定当前的键盘类型 通知?

- (void)keyboardDidShow:(NSNotification *) {
    // Need way to determine keyboard type here
  }

感谢。

1 个答案:

答案 0 :(得分:4)

如果您询问键盘的语言,只能使用UITextInputMode class方法在iOS4.2及更高版本中完成:+[UITextInputMode currentInputMode];

如果你想要大小(因为根据语言大小可以改变)很容易,从对象获取密钥UIKeyboardBoundsUserInfoKey的大小

- (void)keyboardWasShown:(NSNotification*)aNotification{
NSDictionary* info = [aNotification userInfo];
NSValue* aValue = [info UIKeyboardFrameEndUserInfoKey];
CGSize keyboardSize = [aValue CGRectValue].size;
//I just got the size! ... do something with it
}