10

У меня есть UITextField с этим NSNotification:Текст из UITextFieldTextDidChangeNotification

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

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

NSLog когда я набираю в 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>>} 

Как получить текст r из объекта NOTIF?

+0

Вы должны использовать константу UITextFieldTextDidChangeNotification (объявленный в UITextField.h) вместо передачи своего собственного NSString в качестве аргумента «name» –

ответ

16

Недвижимость object содержит текстовое поле, текст которого изменился, поэтому notif.object.text будет содержать текст «r».

+0

Его сообщение об ошибке - Свойство «текст» не найдено на объекте типа «id» – daidai

+6

Do ' [(UITextField *) notif.object text] 'вместо – yuji

+1

Ах да, поэтому мне пришлось: UITextField * txt = (UITextField *) notif.object; NSLog (@ "% @", txt.text); – daidai