2013-01-24 10 views
16

いつ通知を受け取ることができますUITextFieldbecomeFirstResponderUITextFieldがFirstFirstResponderになったときに通知を受け取ります

は、私は、通知やユーザーはこのテキストフィールドファーストレスポンダを作るイベントを処理取得したいbecomeFirstResponder

でファーストレスポンダになるために設定isFirstResponderかのように確認することができます。

ありがとうございました。

答えて

30

テキストフィールドのデリゲートを来るする必要があり、このオプションのデリゲートメソッドを実装します:

- (void)textFieldDidBeginEditing:(UITextField *)textField; 
11

UITextFieldDelegate方法textFieldDidBeginEditing:を実装するだけでなく、あなたがUITextFieldTextDidBeginEditingNotification通知を登録することができます。

通知方法は次のようになります。

- (void)someTextFieldDidBeginEditing:(NSNotification *)notification { 
    UITextField *textField = (UITextField *)notification.object; 
} 
0

OSXのためにあなたがNSControlTextDidBeginEditingNotificationに頼る時に副作用を持つボタンに注意する必要があります。

編集を開始していくつかのボタンを押して、テキストフィールドの編集を再開すると、編集を再開するときにもう一度NSControlTextDidBeginEditingNotificationが表示されません。

この現象が原因で問題が発生する場合は、UITextFieldTextDidChangeNotificationを代わりに使用することもできます。

2

デリゲートは間違いなく道のりです。残念ながら、私の状況では、コントローラは私のUITextFieldサブクラスの代理人だったので、私はそれを使用できませんでした、そして、私はそれをプレースホルダテキストを変更する必要がありました。代わりに、私はメソッドをオーバーライドします- (BOOL)canBecomeFirstResponder; & - (BOOL)resignFirstResponder;。スーパーに電話してください。

+0

ええ、あなたのコメントは私の問題を解決したsuperを呼び出すことを覚えています。 –

関連する問題