微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

cocoa 绑定

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:forKey:]

[NSObject(NSkeyvalueCoding) setValue:forKeyPath:]

 

实际上 控件与数据绑定就相当与控件注册一个通知 当控件创建时 他告诉Controller 我会一直关注fido的变化 只要是 通过setFido 设置了fido 控件就会相应刷新

 

实质上就是添加一个observer

[theAppController addobserver:self 

                   forKeyPath:@"fido" 

                      options:NSkeyvalueObservingOld 

                      context:somePointer]; 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐