2011-01-08 6 views
4

現在のキーボードタイプを知る必要があります。インスタンス変数を設定していましたiPhone SDK:UIKeyboardDidShowNotification内のキーボードタイプを特定する方法は?

しかし、テストの結果、通知の非同期性のために必ずしも信頼できるとは限りませんでした。

内の現在のキーボードタイプを通知する方法を教えてもらえますか?

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

ありがとうございます。

答えて

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 
} 
+0

UIKeyboardTypeNumberPadがtrueかどうかを知る必要があります。その情報がnotification.userInfoで利用可能かどうか知っていますか?私はドキュメントから伝えることができませんでした。私はコンパイルについて警告を受けました。 –

+0

あなたは結果+ [UITextInputMode currentInputMode]を試しましたか? NumberPadのキーボードが表示されていますか? – nacho4d

+0

またはこの通知を試みてください:UITextInputCurrentInputModeDidChangeNotification – nacho4d

関連する問題