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"];
}