删除正确选择的 NSManagedObjects

发布于 2024-07-13 09:57:15 字数 930 浏览 10 评论 0原文

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

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

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

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

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

NSManagedObjectContextObjectsDidChangeNotification  
[NSPopUpButton synchronizeTitleAndSelectedItem];

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

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

顺便说一下:如果您对这个不错的应用程序和本机 URL 缩短器感兴趣,您应该查看此处

Look at this great screenshot and I think you can imagine what I could ask...

screenshot http://a4.s3.p.quickshareit.com/files/screenshot_75d0fc54a05ec7eae3f410.png
The players:

to the right: the preferences-panel and a NSTableView
to the left: main-window with a NSPopUpButton (under the NSMenu ;] )

The selected object of the popup is binded to one of these in the tableview. This ugly thing (what you can see there) appears when I remove the (in the popup selected) object from the tableview. I'm using CoreData and the NSArrayController is binded to one Entity.

I found 2 interesting things:

NSManagedObjectContextObjectsDidChangeNotification  
[NSPopUpButton synchronizeTitleAndSelectedItem];

With the first I know when someone removes a item from the tableview; the second doesn't work unfortunately for my problem...

So any idea how to blast away this ugly thing? =D

By the way: If you are interested in this nice app and a native URL shortener you should look here.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

清泪尽 2024-07-20 09:57:15

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

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

If I understand your description of how everything is built up correctly, selectedObject in your NSPopupButton is bound to some value in your NSTableView.  My guess is that you are using dataSource methods to provide the table with data, and bindings to match the data in the popup with the table.

You should probably use an NSArrayController for the actual dataset, bind its content array to an NSMutablearray in your controller, and bind both the tableView and the NSPopupButton to the arrayController, instead of binding one control to the other.  The problem you describe does not seem to have very much to do with NSManagedObject, except for seeing a default implementation of -description in this situation, but moreso with using bindings in an unconventional way.

且行且努力 2024-07-20 09:57:15

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

I have it!
I just unbinded the selected object of the NSPopUpButton and binded it again. It performs this action only when the selected object was removed from list. ;)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文