2011-12-02 44 views
5

我從iOS的到來,試圖建立最簡單的主從OS X應用程序可能的,但我有一個很難過渡主從應用程序。更具體地說,我無法真正瞭解如何使用NSArrayController將Core Data與NSTableView集成;創建使用NSTreeController,NSArrayController的和核心數據

的應用目前看來這樣的: Contacts app

我的數據模型是這樣的:

enter image description here

正如你可以看到它是非常簡單的。我希望能夠在左側的源列表中選擇一個組,然後在表格視圖右側顯示包含人員的所有人員。

我已經設法將NSOutlineView連接到一個簡單的NSArray,但是使用NSTreeController將它連接到所有Group對象並使其全部可編輯的最佳方式是什麼?

回答

3

添加一個NSArrayController並將其連接到您的Group實體(稱爲GroupController)。選擇左側源視圖的表格列,然後轉到綁定檢查器。選中Value部分,並通過選中框將其綁定到GroupController。通過將Controller Key設置爲arrangedObjectsModel Key Pathtitle來完成綁定。

添加另一個NSArrayControllerPersonsController)。轉到綁定檢查器並選擇名爲Content Set的部分。從下拉列表中選擇您的GroupController並選中複選框以將PersonsController綁定到GroupController。完成設置Controller KeyselectionModel Key Pathpersons結合。這將檢索連接到所選組的人到PersonsController

然後,您可以綁定在你的窗口到PersonsController的右手邊表視圖。將表的每一列連接到PersonsController(firstName,lastName)。

可編輯可以在你的個人資料實體表視圖的列級設置。

編輯:哎呀,剛纔重讀你的問題,看到你想要一個NSTreeController。我認爲你可以用一個NSTreeController替換GroupController - 這是一個普通的NSArrayController。我在您的Group實體中看不到任何層次結構。 Here是一個很好的教程,其代碼爲支持具有層次結構的實體的樹控制器。

EDIT2:另一個很好的教程是蘋果公司的SourceView例子。它顯示瞭如何使用NSTreeController設置源視圖。它的數據源綁定到基於文件的NSDictionary,但使用其他教程和我的答案中所需的綁定的描述,你應該能夠得到這個工作。

+0

嗯,我不一定需要一個NSTreeController,但我想使用一個源列表來顯示我的Group對象,因爲我想讓他們上面的「GROUPS」標題。這可能使用NSArrayController嗎?本教程沒有提到任何關於此的內容。 – Rits

+0

不,AFAIK我知道你必須使用NSOutlineView和一個NSTreeController。我使用該教程構建了我的主/細節應用程序,效果很好。該教程實際上使用了兩個控制器:一個NSArrayController檢索頂層項目(使用謂詞parent == nil),然後使用NSTreeController來顯示實際的樹。 – Roger

相關問題