【发布时间】:2011-03-13 22:22:17
【问题描述】:
我需要能够在每次显示 NSMenu 层次结构时动态修改它(添加/删除项目等)。例如:
- 用户在主菜单上启动跟踪会话并选择子菜单
- 检测子菜单即将打开并运行代码进行修改
- 继续跟踪,用户再次在同一个子菜单上跟踪:转到 2
为此,我有一个实现 NSMenuDelegate 协议的对象。 menuNeedsUpdate 方法第一次起作用 (2),但在第二次打开子菜单时不起作用。 (每个跟踪会话仅调用一次)
menuWillOpen 方法每次都会被调用,但是有文档有以下警告,这似乎不符合使用这种方法的资格:
不要修改结构 菜单或在此期间的菜单项 方法。
有没有办法做到这一点?
【问题讨论】:
-
我觉得你需要
NSMenu.update()?
标签: objective-c cocoa nsmenuitem nsmenu