2

我有一个NSOutlineView充当我的应用程序的源列表,而我的数据模型是使用核心数据完成的。我想使用绑定(如果可能)将这些东西粘合在一起,如下所示:由核心数据驱动的具有绑定的NSOutlineView

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

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

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

这是可能的绑定?我见过一个教程,其中创建了第二个托管对象模型,其中包含用于大纲节点的实体,但文章中的一些评论说这是一个糟糕的主意。我不确定如何继续,任何帮助都会很棒!

回答

2

尝试Cocoa Bindings Programming topics: Providing Controller Content section

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

顶层需要与叶节点有多对多的关系,我称之为children

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

+0

对不起,我的意思是大纲视图中的顶级节点将由一个名为'Groups'的实体表示,这是否也是正确的? – jbrennan 2009-12-23 21:38:26

+0

我想说一个名为'Group'的实体,其名称值是'Cars','Stores','People',是的。该实体与其他实体有关系,称为“子女”。你可以使用你现有的实体,但是我为它们自定义了NSManagedObject的子类来添加'isLeaf'属性。我可以发布我的演示应用程序,如果你有兴趣 – catsby 2009-12-23 22:03:10

+0

如果你不介意张贴这将是太棒了,只是为了我可以看看如何一切都连接起来:) – jbrennan 2009-12-23 22:09:01

相关问题