2016-03-26 2 views
0

Я хочу, чтобы пользовательский вид ввода UITextFiled, на пользовательском представлении прослушивания textField value change.При использовании метода UITextField Settext не удается получить UITextFieldTextDidChangeNotification

, когда я использую self.textField.text = @"demo";

UITextFieldTextDidChangeNotification не называли, но UITextFieldTextDidBeginEditingNotification получил колл,

Как я могу получить UITextFieldTextDidChangeNotification?

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textChanged:) name:UITextFieldTextDidChangeNotification object:nil]; 

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textBeginEdit:) name:UITextFieldTextDidBeginEditingNotification object:nil]; 
+1

Уведомления не отправляются, когда текстовое поле обновляется через треску е. Это по дизайну. – rmaddy

+0

@lintao, когда вы настраиваете self.textField.text = @ "demo"; в коде, что означает знать, когда это произойдет. Тогда почему бы просто не вызвать функцию textChanged: function прямо там. Почему требуется уведомление? –

+0

@ aman.sood Я не хочу иметь ссылку UITextField в пользовательском представлении, это мой код https://github.com/NSObjects/OMGEmojiKeyboard, я надеюсь, что UITextField изменит значение кнопки send send disable или enabel – Neal

ответ

0

Назначить ViewController как делегат UITextField. Убедитесь, что ваш контроллер соответствует протоколу UITextFieldDelegate, а затем реализуйте эти методы делегата в своем контроллере.

@interface YourViewController()<UITextFieldDelegate> 
@end 

-(void)viewDidLoad 
{ 
    [super viewDidLoad] 
     self.textField.delegate = self; 
} 

// реализовать эти методы

  • textFieldShouldBeginEditing:
  • textFieldDidBeginEditing:
  • textFieldShouldEndEditing:
  • textFieldDidEndEditing:
+0

Это не имеет никакого отношения к вопросу. – rmaddy

+0

Я предлагаю альтернативу – habs93

+0

Это не альтернатива. Вы неправильно поняли этот вопрос. – rmaddy