我有一个 NSOutlineView
作为我的应用程序的源列表,我的数据模型是使用 Core Data 完成的。我想使用绑定(bind)(如果可能)将这些东西粘合在一起,如下所示:
我的模型中有三个主要实体,为了举例,我们将它们称为“商店”、“汽车”和“人”。
我的目标是让大纲 View 有 3 个“组”(可扩展节点,如 iTunes 中的播放列表),每个组代表并列出我的一个实体,而且我的窗口底部有三个按钮到“添加商店”、“添加汽车”等,我希望将其连接起来以执行该操作。
到目前为止,在我的窗口 Nib 中,我有一个 TreeController,它绑定(bind)到窗口 Controller 的 NSManagedObjectContext 实例,但我不知道如何从 TreeController 正确绑定(bind)和填充大纲 View 。
这可以通过绑定(bind)实现吗?我看过一个教程,其中创建了第二个托管对象模型,其中包含大纲节点的实体,但该文章的一些评论说这是一个坏主意。我不太确定如何继续,任何帮助都会很棒!
最佳答案
尝试Cocoa Bindings Programming topics: Providing Controller Content section
我所做的是为我的实体创建自定义类,并向它们添加 isLeaf
属性。对于顶层(商店、汽车、人员),我返回no
。对于叶节点(汽车、人等),我返回YES
。
顶层需要与叶节点有一对多关系,我称之为子节点
。
在 Interface Builder 中,我将 NSTreeController
的模式设置为 Entity
,名称:Groups
。它绑定(bind)到 ManagedObjectContext。在Key Paths
中,我将Children
属性设置为children
,将Leaf
设置为isLeaf
>。
关于cocoa - NSOutlineView 与核心数据驱动的绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1954301/