问题描述
在 MacOS 上,我有一个包含动态内容的子菜单,不断重建会很昂贵。如果当用户将鼠标移到父项上时——在实际显示子菜单之前——我可以动态构建子菜单的内容 (NSMenuItems),那就太好了。
我的菜单的简化层次结构如下:
Application File Edit View Tools Window Help
Tools
Foo 1
Foo 2
Foo 3 > (leads to submenu)
子菜单包含拼写检查建议。
提醒一下,Interface Builder 是这样创建菜单的:
Tools (NSMenuItem)
NSMenu
Foo 1 (NSMenuItem)
Foo 2 (NSMenuItem)
Foo 3 > (NSMenuItem)
NSMenu
First spellcheck choice (NSMenuItem)
Second spellcheck choice (NSMenuItem)
Third spellcheck choice (NSMenuItem)
我希望只在用户将鼠标移过 Foo 3 时才重建 Foo 3 子菜单。有人成功解决了这个问题吗?
编辑:在测试建议后,不会为位于 Foo 3 下方的子菜单的 NSMenu 调用 NSMenuDelegate 方法。这使我确定最佳解决方案是使用 F00 3 的菜单验证方法,该方法(不幸地)被调用任何时候从菜单栏中选择“工具”菜单。
请管理员注意:为什么这个问题会被标记为“关闭”?这是一个完全合理的问题,以大多数 macOS 工程师很容易理解的方式提出。为什么 SO 通常比过去几年对合法问题更不友好?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)