2010-11-14 106 views
0

我有一個窗口包含NSTableView列出一堆管理對象。我可以右鍵單擊這些對象的選擇,並調出編輯窗口來編輯這些對象的屬性(理論上)。NSArrayController +核心數據+綁定

這裏是我的代碼,彈出窗口:

EditObjController *editObjController = [[EditObjController alloc] init]; 

// This line has to be first or the properties of editObjController are all nil. 
[[editObjController window] makeKeyAndOrderFront:self]; 
[editobjController.arrayController setManagedObjectContext:[[NSApp delegate] managedObjectContext]]; 

NSArray *selection = [_objects objectsAtIndexes: [_objectsTableView selectedRowIndexes]]; 
[editObjController.arrayController setContent: selection]; 

我對編輯窗口筆尖有一個NSArrayController在裏面。我在窗口上有各種文本框,所有這些文本框都綁定到NSArrayController,控制鍵'selection',模型鍵路徑= nameoffield。

數組控制器是一個有效的對象。沒有錯誤報告。

出現窗口時出現的所有內容在所有文本字段中均爲「未選擇」。我錯過了什麼?我已經廣泛搜索,我找不到一個體面的教程,解釋如何使用核心數據和綁定實際編輯記錄。

+0

Markdown提示:\'\'用於內聯代碼格式。對於代碼塊,您需要在每行的開始處使用四個空格或一個製表符。 – 2010-11-14 08:21:15

回答

2

您的NSTableView和編輯窗口應共享相同的陣列控制器。

+0

一旦你這樣做了,沒有理由去問視圖中選擇了什麼。數組控制器已經知道選擇了什麼,並且如果您想共享這些知識,請將數組控制器的'selectedObjectIndexes'屬性綁定到您自己的屬性,並持有指向NSIndexSet的指針。 – 2010-11-14 08:25:06

相關問題