【发布时间】:2014-08-05 09:12:01
【问题描述】:
我有一个基于 NSCollectionView 的主从界面, 我想在主视图中显示 Boards,在详细视图中显示 Lists+Cards。
Board,拥有 List 类型的 NSMutableArray 属性 lists
List,拥有一个 Card 类型的 NSArray 属性 cards
Card,有一个NSString 属性name
因此关系是 Board --> to-many List --> to-many Card
主界面很好。
详细界面会填充相应列表的标题 为董事会。在详细界面中,我还想用 NSPopupButton 填充 每个列表的卡片。
问题:NSPopupButton 为空。
Output: [<__NSArrayI 0x60000007b240> addObserver:forKeyPath:options:context:] is not supported. Key path: name
所以在阅读了 KVO、KVC 和 Bindings 文档之后,我不确定是否需要为这种分层模型执行手动 KVO。输出还暗示 name 属性不符合 KVC/KVO,但它只是一个 NSString?
您是否建议为此使用 NSTreeController?
绑定设置如下:
BoardArrayController -> 绑定到文件的所有者
- ** 模型键路径:板
ListArrayController -> 绑定到 BoardArrayController
- ** 控制器键:排列对象
- ** 模型键路径:列表
- ** 模式:类
CardArrayController -> 绑定到 ListArrayController
- ** 控制器键:排列对象
- ** 模型密钥路径:卡片
- ** 模式:类
NSPopupButton 有
- 内容的控制器键:排列对象
- 内容值的控制器键:排列对象和模型键路径:名称
请提出建议
【问题讨论】:
标签: cocoa cocoa-bindings key-value-observing