Rit*_*its 5 macos cocoa core-data objective-c cocoa-bindings
我来自iOS并尝试构建最简单的主 - 细节OS X应用程序,但我很难过渡.更具体地说,我无法理解如何使用NSArrayController将Core Data与NSTableView集成;
该应用目前看起来像这样:

我的数据模型如下所示:

你可以看到它非常简单.我希望能够在左侧的源列表中选择一个组,然后在右侧的表视图中显示所有包含人员的组.
我已经设法将NSOutlineView连接到一个简单的NSArray,但是使用NSTreeController将它连接到所有Group对象的最佳方法是什么,并使其全部可编辑?
添加NSArrayController并将其连接到您的Group实体(将其称为GroupController)。选择左侧源视图的表列并转到绑定检查器。选择该部分并通过选中该框Value将其绑定到。通过设置to和toGroupController完成绑定。Controller KeyarrangedObjectsModel Key Pathtitle
加上另一个NSArrayController(PersonsController)。转到绑定检查器并选择名为 的部分Content Set。PersonsController从下拉列表中选择您的 GroupController 并选中要绑定到的复选框GroupController。Controller Key通过设置toselection和Model Key Pathto完成绑定persons。这会将连接到所选组的人员检索到PersonsController
然后,您可以将窗口右侧的表视图绑定到 PersonsController。将表的每一列连接到 PersonsController(firstName、lastName)。
可编辑性可以在 Person 实体的表视图的列级别设置。
编辑:哎呀,只需重读您的问题,发现您想要一个 NSTreeController。我认为你可以用 NSTreeController 替换 GroupController - 这是一个普通的 NSArrayController 。我在您的 Group 实体中没有看到任何层次结构。这是一个很好的教程,其中包含支持具有层次结构的实体的树控制器的代码。
EDIT2:另一个很好的教程是Apple的SourceView示例。它展示了如何使用 NSTreeController 设置源视图。它的数据源绑定到基于文件的 NSDictionary,但使用其他教程和我的答案中所需绑定的描述,您应该能够使其工作。