gpt4 book ai didi

分层模型的 Cocoa 绑定(bind)

转载 作者:行者123 更新时间:2023-12-03 16:35:53 25 4
gpt4 key购买 nike

我有一个基于 NSCollectionView 的主从界面,我想在主视图中显示板,在详细 View 中显示列表+卡片。

Board ,持有NSMutableArray属性(property)lists列表类型 List ,持有NSArray属性(property)cards卡类型 Card ,有 NSString属性(property)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 吗?

绑定(bind)设置如下:

BoardArrayController -> 绑定(bind)到文件的所有者

  • ** 模型关键路径:板

ListArrayController -> 绑定(bind)到 BoardArrayController

  • ** Controller 键:arrangedObjects
  • ** 模型关键路径:列表
  • ** 模式:类

CardArrayController -> 绑定(bind)到 ListArrayController

  • ** Controller 键:排列对象
  • ** 模型关键路径:卡片
  • ** 模式:类

NSPopupButton 具有

  • 内容的 Controller 键:arrangedObjects
  • 内容值的 Controller 键:arrangedObjects 和模型键路径:名称

请提出建议

最佳答案

如果我理解正确的话,在主界面中,用户选择一个板。然后,详细界面应该显示所选板的列表。如果是这样,ListArrayController 应绑定(bind)到 BoardArrayController, Controller 键 selection(而不是 arrangedObjects),模型关键路径列表

同样,CardArrayController 应绑定(bind)到 ListArrayController、 Controller 键 selection、模型键路径 cards。尽管我不清楚用户是否必须首先选择一个列表,然后看到包含该列表的卡片的弹出窗口,或者该弹出窗口是否存在于第二个 Collection View 中的每个项目中。如果是这种情况,那么您将需要为每个项目使用一个单独的数组 Controller ,如果项目 View 位于单独的 NIB 中,则这是最简单的。

关于分层模型的 Cocoa 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24228532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com