带有绑定的NSOutlineView由Core Data驱动

时间:2009-12-23 17:47:55

标签: cocoa core-data cocoa-bindings nsoutlineview nstreecontroller

我有NSOutlineView作为我的应用程序的源列表,我的数据模型是使用Core Data完成的。我想使用绑定(如果可能的话)将这些东西粘合在一起,如下所示:

我的模型中有三个主要实体,为了举个例子,我们称之为“商店”,“汽车”和“人物”。

我的目标是让大纲视图有3个“组”(可扩展节点,如iTunes中的PLAYLISTS),每个组代表并列出我的一个实体,而且我的窗口底部还有三个按钮到“添加商店”,“添加汽车”等我想要连线以执行该操作。

到目前为止,在我的窗口的nib中,我有一个TreeController,它绑定到我的窗口控制器的NSManagedObjectContext实例,但我无法弄清楚如何从TreeController正确绑定和填充大纲视图。

绑定有可能吗?我已经看过一个教程,其中创建了第二个托管对象模型,其中包含了大纲节点的实体,但是文章上的一些评论说这是一个坏主意。我不确定如何继续,任何帮助都会很精彩!

1 个答案:

答案 0 :(得分:2)

尝试Cocoa Bindings Programming topics: Providing Controller Content section

我所做的是为我的实体创建自定义类,并为它们添加了isLeaf属性。对于顶级(商店,汽车,人),我返回no。对于叶节点(汽车,人等),我返回YES

顶级需要与叶节点建立多对多的关系,我称之为children

在Interface Builder中,我将NSTreeController的模式设置为Entity,名称为:Groups。它绑定到managedObjectContext。在Key Paths我将Children属性设置为children,将Leaf设置为isLeaf