并不是KVO注册监听了就能监听到值得改变,KVO是在KVC的基础上,所以可以这样理解,通过下列方法:
1.setter
2.setValue:forKey
才可以让我们监听得到值得改变,若不是以上两种方法的话是监听不到值得改变的,在此我举一个典型的例子:
UITextField.text监听,我们用KVO是无法监听到值得改变的,不信的你们可以去试试,但是我们通过UITextField.text = @"xxx";的时候是能够执行回调方法的。
这里介绍两个监听UITextField的方法:
1.addTarget,因为UITextField是继承UIControl的,所以我们可以通过addTarget方法的valueChanged类型来监听文本值得改变
2.通知