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

相關問題