2011-01-08 62 views
4

我需要知道當前的鍵盤類型。我正在設置一個實例變量iPhone SDK:如何確定UIKeyboardDidShowNotification中的鍵盤類型?

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 

但是,測試表明,由於通知的異步性質,這並不總是可靠的。

我想知道的是,如果有人能告訴我如何確定 中的當前鍵盤類型的通知?

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

謝謝。

回答

4

如果你問的是鍵盤的語言只能在iOS4.2的和上面使用UITextInputMode class方法來完成:+[UITextInputMode currentInputMode];

如果你想要的大小(因爲根據語言的大小可以改變)很容易,從關鍵的UI對象獲取大小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 
} 
+0

我需要知道UIKeyboardTypeNumberPad是否爲true。你知道這些信息是否在notification.userInfo中可用?我無法從文檔中看出來,並在編譯時收到警告。 – 2011-01-08 18:37:21