28

通知を受け取るにはどうすればよいUITextField becomeFirstResponderですか?

のようにチェックするisFirstResponderか、ファーストレスポンダーになるように設定することができますbecomeFirstResponder

ユーザーがこのテキストフィールドをファーストレスポンダーにしたときに、通知を受け取ったり、イベントを処理したりしたい。

ありがとう。

4

4 に答える 4

42

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

- (void)textFieldDidBeginEditing:(UITextField *)textField; 
于 2013-01-24T22:21:14.807 に答える
13

UITextFieldDelegateメソッドの実装に加えて、通知textFieldDidBeginEditing:に登録できます。UITextFieldTextDidBeginEditingNotification

通知方法は次のとおりです。

- (void)someTextFieldDidBeginEditing:(NSNotification *)notification {
    UITextField *textField = (UITextField *)notification.object;
}
于 2013-01-24T23:09:31.607 に答える
1

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

于 2016-03-02T02:32:25.070 に答える
-1

OSXの場合、に依存する場合は、ボタンに副作用があることに注意する必要がありますNSControlTextDidBeginEditingNotification

編集を開始し、いくつかのボタンを押して、テキストフィールドの編集を再開すると、編集NSControlTextDidBeginEditingNotificationを再開しても1秒もかかりません。

この動作が問題を引き起こす場合は、別の方法でUITextFieldTextDidChangeNotificationある可能性があります。

于 2014-03-05T22:14:53.633 に答える