Cocoa 中很多图形对象都支持绑定. 我们把一个图形对象的属性(比如颜色,或是值)和 一个key,比如fido,绑定起来.那么,图形对象就可以自动和那个key的值同步.
1. 定义数据 并且定义阿城城市可以写
-(int)fido{}
-(void)setFido:(int)value{}
或者写
@property (readwrite,assign) int fido;
@synthesize fido;
2. 通过interface build建立 控件与数据 之间的绑定
结论:
绑定后的控件如果发生奉新 那么setFido被调用,
只有调用 setFido 其他和fido绑定的控件才会得到更新
如果直接附值 比如 fido = 10; 绑定的控件是不会更新的 必须调用
[self willChangeValueForKey:@"fido"];
fido++;
[self didChangeValueForKey:@"fido"];
本质:
call stack:
[AppController setFido:]
[NSObject(NSkeyvalueCoding) setValue:forKeyPath:]
实际上 控件与数据绑定就相当与控件注册了一个通知 当控件创建时 他告诉Controller 我会一直关注fido的变化 只要是 通过setFido 设置了fido 控件就会相应刷新
[theAppController addobserver:self
forKeyPath:@"fido"
options:NSkeyvalueObservingOld
context:somePointer];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。