监听文本框 accountField 内容的改变, 当发生改变时, 调用textChange方法(多次)。监听结束需要移除通知。
我们用到的监听很多,可以帮助我们干很多的事情,我们在监听一些值得变化时候,我们用通知或者KVO是相当方便的
这里介绍通知简单的用法,KVO随后也会给出实例,还有一点我们需要注意的时通知是 一处发,多处接收 在主线程中执行
问题来了 既然在主线程中执行,会不会阻塞主线程? 这个问题留给大家思考
对于一个问题的解决与提出 我们要勤于思考 这样才会进步
上代码:
- (void)viewDidLoad { [super viewDidLoad]; // 1.监听通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textChange) name:UITextFieldTextDidChangeNotification object:self.accountField]; } //监听结束需要移除 - (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; } /** * 文本框的文字发生改变的时候调用 */ - (void)textChange { self.loginBtn.enabled = (self.accountField.text.length && self.pwdField.text.length); }
1. addObserver:self
2. selector:@selector(textChange) 监听到,执行方法。
3. name:UITextFieldTextDidChangeNotification 枚举类型。
4. object:self.accountField 监听对象