2009-02-12 98 views
0

看看这个伟大的截图,我想你能想象我能问什么?删除正确选择NSManagedObjects

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

向右:首选项面板和NSTableView
向左:主窗口与NSPopUpButton(下NSMenu;])

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

我发现2件有趣的事情:

NSManagedObjectContextObjectsDidChangeNotification 
[NSPopUpButton synchronizeTitleAndSelectedItem]; 

随着第一我知道,当有人从tableview中删除一个项目;第二个不能工作,不幸的是我的问题...

所以任何想法如何爆炸这个丑陋的东西? = D

顺便说一句:如果你有兴趣在这个不错的应用程序和本地URL缩短,你应该look here

回答

0

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

1

如果我理解了您的关于如何正确构建所有内容的描述,则NSPopupButton中的selectedObject将绑定到NSTableView中的某个值。我的猜测是,您正在使用dataSource方法向表提供数据,并使用绑定来匹配弹出式表中的数据。

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

+0

我忘了。我正在使用NSArrayController + CoreData(这是为什么NSManagedObject)。其实应该没有任何描述... – papr 2009-02-13 05:19:22