我需要能够在每次显示时动态修改 NSMenu 层次结构(添加/删除项目等)。例如:
- 用户在主菜单上启动跟踪会话并选择子菜单
- 检测子菜单即将打开并运行代码来修改它
- 继续跟踪,用户再次在同一个子菜单上跟踪:转到 2
所以要做到这一点,我有一个实现NSMenuDelegate协议的对象。menuNeedsUpdate方法第一次起作用 (2),但在第二次打开子菜单时不起作用。(每个跟踪会话仅调用一次)
方法menuWillOpen每次都会被调用,但是有文档有以下警告,这似乎取消了使用这种方法的资格:
在此方法期间不要修改菜单或菜单项的结构。
有没有办法做到这一点?