首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSTableView中具有分层菜单的NSPopUpButtonCell

NSTableView中具有分层菜单的NSPopUpButtonCell
EN

Stack Overflow用户
提问于 2011-02-03 03:10:59
回答 2查看 614关注 0票数 4

我有一个NSTableView,其中一列包含NSPopUpButtonCells。这一列被分配给一个IBOutlet。我的应用程序的控制器类在它的init中创建一个菜单,并将其分配给NSTableColumn的dataCell,即NSPopUpButtonCell

菜单如下所示:

代码语言:javascript
复制
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。我如何才能获得所选择的菜单项?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-19 02:26:09

我不认为我会依赖-tableView:setObjectValue:forTableColumn:row:当您有一组复杂的菜单和子菜单时;如果我没记错的话,在子菜单开始使用时,并没有真正的“对象值”映射到菜单项-- NSMenu太老了,不能像您希望的那样使用NSIndexPath,而且还不够复杂,无法尝试将整数映射到菜单和子菜单。(另外,菜单往往会动态变化很多,因此"3“的含义会让人感到不安。)

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

票数 1
EN

Stack Overflow用户

发布于 2011-02-20 17:03:03

您是否使用与检索项目1和2相同的代码?我想你是的,但有时这些事情很容易被忽视=/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4878757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档