kvo,(key-value-observing),观察者模式。可以简单理解为监听属性,发生变化后,执行相应的方法。
一般使用三步走:
1:注册监听
2:实现方法
3:移除监听
简单监听textField:
- (void)viewDidLoad {
[super viewDidLoad];
[_textField addObserver:self forKeyPath:@"text" options:0 context:nil];
}
- (IBAction)btn:(id)sender {
_textField.text = @"abc";
}
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context{
if ([keyPath isEqualToString:@"text"] && object == self.textField) {
NSLog(@"textFieldValue is :%@",_textField.text);
}
}
-(void)dealloc{
[_textField removeObserver:self forKeyPath:@"text"];
}