10

Mam UITextField z tym NSNotification:Tekst z UITextFieldTextDidChangeNotification

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFieldDidChange:) name:@"UITextFieldTextDidChangeNotification" object:_searchTextField]; 

- (void)textFieldDidChange :(NSNotification *)notif 
    { 
    // 
    } 

NSLog jest po wpisaniu w r

NSConcreteNotification 0x193c20 {name = UITextFieldTextDidChangeNotification; object = <UITextField: 0x15a980; frame = (20 20; 280 31); text = 'r'; clipsToBounds = YES; opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x15aad0>>} 

Jak mogę uzyskać tekst r z przedmiotem notyfikacji?

+0

Powinieneś użyć stałego UITextFieldTextDidChangeNotification (zadeklarowanego w UITextField.h) zamiast przekazywania własnego NSString jako argumentu "name" –

Odpowiedz

16

Właściwość powiadomień object przechowuje pole tekstowe, którego tekst został zmieniony, dzięki czemu notif.object.text będzie zawierał tekst "r".

+0

Wystąpił błąd - Nie znaleziono "obiektu" na obiekcie typu "id" – daidai

+6

Do ' [(UITextField *) notif.object text] 'zamiast – yuji

+1

Ah tak, więc musiałem: UITextField * txt = (UITextField *) notif.object; NSlog (@ "% @", txt.text); – daidai