2

通知UIViewControllerのオブザーバーになるようにを追加しようとしています。UITextFieldTextDidChangeNotificationテキストフィールドに入力してテキストを変更すると、すべてがスムーズに進みます。ただし、[_ textfield setText:@ "Blahblah"]を呼び出してテキストを変更しようとすると、通知が送信されないようです。

これは意図された方法ですか?

ありがとう!

4

1 に答える 1

6

これは通常、ほとんどのイベントに当てはまります。イベントがユーザー主導の場合に通知が必要です。ただし、イベントが明示的なコード変更によって引き起こされる場合は、通知は必要ありません。変更を行うために明示的な呼び出しを行っているため、オプションで通知ハンドラーを呼び出すこともできます。これは、より柔軟なアプローチです。

独自のコードがイベントをトリガーするときに通知を送信したくない理由の例を次に示します。コードが通知を受け取ったときにテキストを検証し、その検証に基づいてテキストフィールドを更新するとします。これにより、通知/変更の無限ループが発生する可能性があります。

于 2012-10-20T03:35:45.283 に答える