监听文本框的文字改变
* 一个文本输入框的文字发生改变时,文本输入框会发出一个UITextFieldTextDidChangeNotification通知
* 因此通过监听通知来监听文本输入框的文字改变
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textChange) name:UITextFieldTextDidChangeNotification object:textField];
// textField文本输入框的文字改变了,就会调用self的textChange方法
拿到通知
- (void)viewDidLoad { [super viewDidLoad]; // 监听文本输入框的改变 // [self.accountField addTarget:self action:@selector(textChange) forControlEvents:nil] // self.accountField.delegate = self; // 1.拿到通知中心 NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; // 2.注册监听 // 注意点: 一定要写上通知的发布者 [center addObserver:self selector:@selector(textChange) name:UITextFieldTextDidChangeNotification object:self.accountField]; [center addObserver:self selector:@selector(textChange) name:UITextFieldTextDidChangeNotification object:self.pwdField]; // UISwitch *switchBtn; // [switchBtn addTarget:self action:@selector(change) forControlEvents:UIControlEventValueChanged] } - (void)textChange { /* // 1.判断是否同时输入了账号和密码 if (self.accountField.text.length > 0 && self.pwdField.text.length > 0) { // 2.让登录按钮可用 self.loginBtn.enabled = YES; }else { self.loginBtn.enabled = NO; } */ self.loginBtn.enabled = (self.accountField.text.length > 0 && self.pwdField.text.length > 0); }
移除通知
- (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; }