gpt4 book ai didi

objective-c - 使用 NSTreeController、NSArrayController 和 Core Data 创建主从应用程序

转载 作者:太空狗 更新时间:2023-10-30 03:53:31 25 4
gpt4 key购买 nike

我来自 iOS,并尝试构建尽可能简单的主从 OS X 应用程序,但我在过渡期间遇到了困难。更具体地说,我无法真正理解如何使用 NSArrayController 将 Core Data 与 NSTableView 集成;

该应用目前看起来是这样的: Contacts app

我的数据模型如下所示:

enter image description here

如您所见,它非常简单。我希望能够在左侧的源列表中选择一个组,然后在右侧的 TableView 中显示所有包含人员。

我已经设法将 NSOutlineView 连接到一个简单的 NSArray,但是使用 NSTreeController 将它连接到所有组对象并使其全部可编辑的最佳方法是什么?

最佳答案

添加一个 NSArrayController 并将其连接到您的 Group 实体(称之为 GroupController)。选择左侧源 View 的表列并转到绑定(bind)检查器。选择 Value 部分并通过选中复选框将其绑定(bind)到 GroupController。通过将 Controller Key 设置为 arrangedObjects 并将 Model Key Path 设置为 title 来完成绑定(bind)。

添加另一个 NSArrayController (PersonsController)。转到绑定(bind)检查器并选择名为 Content Set 的部分。从下拉列表中选择您的 GroupController 并选中复选框以将 PersonsController 绑定(bind)到 GroupController。通过将 Controller Key 设置为 selection 并将 Model Key Path 设置为 persons 来完成绑定(bind)。这会将连接到所选组的人员检索到 PersonsController

然后您可以将窗口右侧的 TableView 绑定(bind)到 PersonsController。将表的每一列连接到 PersonsController (firstName, lastName)。

可以在 Person 实体的 TableView 的列级别设置可编辑性。

编辑:哎呀,只是重读你的问题,发现你想要一个 NSTreeController。我认为您可以用 NSTreeController 替换 GroupController——它是一个普通的 NSArrayController。我在您的集团实体中看不到任何层次结构。 Here是一个很好的教程,其中包含支持具有层次结构的实体的树 Controller 的代码。

EDIT2:另一个很好的教程是 Apple 的 SourceView例子。它展示了如何使用 NSTreeController 设置源 View 。它的数据源绑定(bind)到基于文件的 NSDictionary,但使用其他教程和我的回答中对所需绑定(bind)的描述,您应该能够使其正常工作。

关于objective-c - 使用 NSTreeController、NSArrayController 和 Core Data 创建主从应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8350715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com