2012-04-06 40 views
0

我有一个非常简单的应用程序。这是一个基于非文档的CoreData应用程序。该笔尖包含一个NSArrayController和一个带有一列NSTable的窗口。表格下方有三个按钮:添加,删除和提取。在按钮下方,我有一个NSTextField和第四个按钮,标记为Save。NSTable CoreData和选择

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

在AppDelegate.h我已经加入此代码:

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

@property (retain) IBOutlet NSArrayController *departments; 

并在AppDelegate.m

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

按钮被绑定到添加:除去:与取:在NSArrayController的。 保存按钮势必保存:在AppDelegate中

的的NSTextField势必NSArrayController的实例在笔尖,ControllerKey是选型,型号主要路径是:命名

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

什么不起作用是表中的选择。更改表中的选定行不会导致在NSArrayController中选择该行的值。我知道我可以在表上捕获SelectionDidChange,并明确设置ArrayController上的选择,但我不知道是否有更简单的方法来做到这一点。

我看过其他的例子,其中有两个表视图,表示一对多的关系。第一个表中的选择会导致第二个表显示依赖实体。 (例如选择一个部门显示该部门的雇员)。在我看的例子中,似乎没有NSTableDelegate。

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

回答

1

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

作为一种替代方案,您可以绑定表格列的Value绑定到Array Controller.arrangedObjects,并且选择应该可以工作。

+0

即使问题是旧的,我发现你的答案非常有用。现在使用基于视图的表格视图,选择不再有效。你的答案我解决了!谢谢 – Francesco 2012-12-10 16:22:06