9

次のものがあります。

// watch the fields
[[NSNotificationCenter defaultCenter]  addObserver:self
                                          selector:@selector(handleTextChange:)
                                              name:UITextFieldTextDidChangeNotification
                                            object:textField1];

その後:

-(void) handleTextChange:(NSNotification *)notification {
  ...
}

にブレークポイントがありますが-handleTextChange:、起動されません。textField は Interface Builder で接続されています。


iOS6 iPhone/iPad シミュレータ、iOS5.1 iPad2 では動作しますが、iOS6 iPad3 では動作しません。

4

5 に答える 5

7

だから私はそれを理解しました。IOS6 SDK で変更されたのは、テキスト フィールドのテキストをプログラムで変更した場合、通知が送信されないことです。これらすべてのビューにカスタム キーボードがあります。キーをタップすると、入力した内容が追加されてテキスト フィールドのテキスト値が変更されます。ios 5 では通知「textdidchange」が送信されますが、ios6 では送信されません。

于 2012-10-10T19:24:42.187 に答える
7

Irenaは正しいです。テキスト フィールドがプログラムで設定されている場合、UITextFieldTextDidChangeNotification は起動しません。ただし、iOS6 とは関係なく、iOS 6 SDK と関係があることを明確にしたいと思います。iOS 5.1 SDK でコンパイルすると、iOS 6 デバイスで実行されている場合でも、テキスト フィールドがプログラムまたはその他の方法で変更されるたびに、UITextFieldTextDidChangeNotification 通知が発生します。

于 2013-01-14T20:20:32.257 に答える
0

ipad3 と iOS6.0 の通知では、UITextFieldTextDidChangeNotification は正常に動作します。置く

[[NSNotificationCenter defaultCenter]  addObserver:self
                                      selector:@selector(handleTextChange:)
                                          name:UITextFieldTextDidChangeNotification
                                        object:textField1];

あなたのビューでDidLoad

于 2012-11-16T10:20:15.583 に答える