删除正确选择的NSManagedObjects

时间:2009-02-12 21:12:22

标签: cocoa core-data cocoa-bindings menu

看看这个精彩的截图,我想你可以想象我可以问的......

screenshot http://a4.s3.p.quickshareit.com/files/screenshot_75d0fc54a05ec7eae3f410.png 球员们:

  

在右边:首选项面板和NSTableView
  在左侧:带有NSPopUpButton的主窗口(在NSMenu;]下)

弹出窗口的选定对象绑定到tableview中的其中一个对象。当我从tableview中删除(在弹出窗口中选中)对象时,会出现这个丑陋的东西(你可以看到那里)。 我正在使用CoreData,NSArrayController绑定到一个实体。

我发现了两件有趣的事情:

NSManagedObjectContextObjectsDidChangeNotification  
[NSPopUpButton synchronizeTitleAndSelectedItem];

第一个我知道有人从桌面视图中删除了一个项目;第二个不幸的是我的问题......

所以任何想法如何消除这个丑陋的东西? = d

顺便说一句:如果您对这个不错的应用程序和本地URL缩短程序感兴趣,那么您应该look here

2 个答案:

答案 0 :(得分:1)

如果我理解你对如何正确构建所有内容的描述,NSPopupButton中的selectedObject绑定到NSTableView中的某个值。我的猜测是你使用dataSource方法为表提供数据,并使用绑定将弹出窗口中的数据与表匹配。

您应该使用NSArrayController作为实际数据集,将其内容数组绑定到控制器中的NSMutablearray,并将tableView和NSPopupButton绑定到arrayController,而不是将一个控件绑定到另一个控件。您描述的问题似乎与NSManagedObject没有太大关系,除了在这种情况下看到-description的默认实现,但更多的是以非常规的方式使用绑定。

答案 1 :(得分:0)

我拥有它! 我刚刚取消绑定NSPopUpButton的选定对象并再次绑定它。从列表中删除所选对象时,它会执行此操作only。 ;)