【发布时间】:2011-01-05 19:31:52
【问题描述】:
我有一个显示多个子面板的应用程序,客户希望为每个子面板显示不同的菜单。
显然,Mac 应用程序的每个系统窗口只能有一个 menuBar,而且它的可修改性极低(如果有的话)。我需要删除/添加或启用/禁用菜单栏上的菜单。
我考虑过让每个子面板成为系统窗口并为每个子面板附加一个菜单栏,但我没有看到任何切换到窗口菜单栏的规定。此外,我怀疑这样做会给子面板造成状态/定位混乱。
我发现了什么
我发现如果我将动作创建为主窗口的子窗口,我可以从菜单本身随意添加和删除它们。所以,我可以修改菜单内容,但不能修改菜单栏内容。
我发现我也可以随时将菜单的标题更改为任何内容。所以,如果我清除内容并将标题设置为一个空字符串,它具有删除菜单的明显效果(尽管它仍然存在并且仍然突出显示)。
除非有其他解决方案,否则现在必须这样做。
这在 Mac 上是否可行?如果我进入 Cocoa(不知道 Cocoa),我是否可以设置多个菜单栏,或者至少在子面板更改时修改菜单栏?
【问题讨论】:
-
将标题设置为空字符串可能对于单个菜单是可以的,但如果您设置空字符串的菜单是多个并且彼此相邻,那么您将获得相当大的空间。