gpt4 book ai didi

cocoa - 不稳定的核心数据和选择

转载 作者:行者123 更新时间:2023-12-03 17:58:33 27 4
gpt4 key购买 nike

我有一个非常简单的应用程序。它是一个非基于文档的 CoreData 应用程序。 nib 包含一个 NSArrayController 和一个带有一列 NSTable 的窗口。表下方是三个按钮:添加、删除和获取。在按钮下方有一个 NSTextField 和第四个标记为“保存”的按钮。

我的模型有两个实体,部门和员工。该部门只有一个属性,即名称。我目前没有使用 Employee。

在 AppDelegate.h 中我添加了以下代码:

@interface HMGAppDelegate : NSObject <NSApplicationDelegate>
{
NSArrayController *_departments;
}

@property (retain) IBOutlet NSArrayController *departments;

以及 AppDelegate.m

 - (void) awakeFromNib
{
[[self departments] fetch:nil];
}

按钮绑定(bind)到 NSArrayController 上的 add:remove: 和 fetch: 。保存按钮绑定(bind)到AppDelegate上的save:

NSTextField绑定(bind)到nib中的NSArrayController实例,ControllerKey是selection,Model Key Path是:name

当我运行应用程序时,我可以创建新实体并更改实体的值。一切都很好。

表格中的选择不起作用。更改表中选定的行不会导致在 NSArrayController 中选择该行的值。我知道我可以在表上放置一个委托(delegate) catch SelectionDidChange 并在 ArrayController 上显式设置选择,但我想知道是否有更简单的方法来做到这一点。

我见过其他示例,其中有两个 TableView ,代表一对多关系。第一个表中的选择会导致第二个表显示从属实体。 (例如选择一个部门会显示该部门的员工)。在我正在查看的示例中,似乎没有 NSTableDelegate。

我错过了什么? NSTableView 如何将其选择传达回 NSArrayController?

最佳答案

你是如何设置绑定(bind)的?如果将 NSTableView 的内容绑定(bind)到 NSArrayController,则还必须绑定(bind) selectionsortDescriptions

作为替代方案,您可以将表列的 Value 绑定(bind)绑定(bind)到 Array Controller.arrangedObjects 并且选择应该起作用。

关于cocoa - 不稳定的核心数据和选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10043017/

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