アプリケーションでカスタマイズされたキーボードを使用しようとしていますが、特定のUITextFieldに制限しようとすると問題が発生します。
私はこのXcodeプロジェクト(元々はこのブログにあります)に基づいてコードを作成しました。このコードは、カスタムUIButton(「小数点」を表す)をUIKeyboardTypeNumberPadキーボードビューに追加します。これは、UIKeyboardWillShowNotificationをサブスクライブし、表示されたときにキーボードを変更することによって行われます。
そのXcodeプロジェクトはうまく機能しますが、UITextFieldを追加すると、そのテキストフィールドにまったく異なるキーボードタイプを選択した場合でも、カスタムキーがそのテキストフィールドのキーボードにも挿入されます。
1つの特定のUITextFieldからのUIKeyboardWillShowNotification通知のみを表示するように登録しようとしましたが、機能しないようです。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:exampleViewController.textField];
また、keyboardWillShowに渡されたNSNotification内のオブジェクトを検査しようとしましたが、残念ながら、キーボードが表示される原因となったUIコントロールではなく、キーボードを参照しています。
2009-10-21 19:50:22.205 Example[6302:207] NSConcreteNotification 0x321ebd0 {name = UIKeyboardWillShowNotification; userInfo = {
UIKeyboardAnimationCurveUserInfoKey = 0;
UIKeyboardAnimationDurationUserInfoKey = 0.300000011920929;
UIKeyboardBoundsUserInfoKey = NSRect: {{0, 0}, {320, 216}};
UIKeyboardCenterBeginUserInfoKey = NSPoint: {160, 588};
UIKeyboardCenterEndUserInfoKey = NSPoint: {160, 372};
}}
addObserverインターフェースを誤解していますか?確かに、特定のUIコントロールからの通知をサブスクライブする方法が必要ですか?
誰かがこれを達成する方法について他に何か提案がありますか?