0

看看这个很棒的截图,我想你可以想象我会问什么......

截图 http://a4.s3.p.quickshareit.com/files/screenshot_75d0fc54a05ec7eae3f410.png 玩家:

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

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

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

NSManagedObjectContextObjectsDidChangeNotification  
[NSPopUpButton synchronizeTitleAndSelectedItem];

首先,我知道有人从 tableview 中删除了一个项目;不幸的是,第二个对我的问题不起作用......

那么知道如何炸掉这个丑陋的东西吗?=D

顺便说一句:如果你对这个不错的应用程序和原生 URL 缩短器感兴趣,你应该看这里

4

2 回答 2

1

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

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

于 2009-02-12T22:56:10.667 回答
0

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

于 2009-02-15T10:11:07.007 回答