gpt4 book ai didi

objective-c - NSPopUpButtonCell 与 NSTableView 中的分层菜单

转载 作者:搜寻专家 更新时间:2023-10-30 19:48:38 26 4
gpt4 key购买 nike

我有一个 NSTableView,其中一列包含 NSPopUpButtonCell。此列分配给 IBOutlet。我的应用程序的 Controller 类在其 init 中创建了一个菜单,并将其分配给 NSTableColumn 的数据单元格,即 NSPopUpButtonCell

菜单如下所示:

NSPopUpButton
NSMenu
NSMenuItem item1
NSMenuItem item2
NSMenuItem item3
NSMenu
NSMenuItem item3_1
NSMenuItem item3_2
NSMenuItem item4
NSMenuItem item4_1
NSMenuItem item4_2
NSMenuItem item4_3

当我单击菜单并选择 item1 或 item2 时,我的数据源的 tableView:setObjectValue:forTableColumn:row: 被触发并且 objectValue 为 0 或 1,即所选项目的索引。但是,当我从其中一个子菜单中选择一个项目时,我得到的 objectValue 是 -1。我怎样才能获得选择的菜单项?

最佳答案

我不认为我会依赖 -tableView:setObjectValue:forTableColumn:row: 当你有一组复杂的菜单和子菜单时;如果我没记错的话,当子菜单发挥作用时,实际上并没有一个“对象值”到菜单项映射——NSMenu 太旧了,无法像您希望的那样使用 NSIndexPath,而且不够复杂,无法尝试将整数映射到菜单和子菜单。 (另外,菜单往往会动态变化很多,所以“3”的意思会很古怪。)

在您的 NSMenuItems(或者可能只是父 NSMenus)上设置一个目标和操作,以便在每个被选中时做一些可靠的事情。

关于objective-c - NSPopUpButtonCell 与 NSTableView 中的分层菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4878757/

26 4 0