如何隐藏Mac应用程序菜单中的“首选项”项目

问题描述 投票:0回答:2

我有一个构建在 Eclipse 富客户端平台之上的应用程序。它还没有任何用户偏好。

目前在 Mac 上,应用程序菜单中的“首选项”菜单项已启用,但不执行任何操作。

有没有简单的方法来隐藏或禁用它?

java macos eclipse-rcp rcp
2个回答
1
投票

为了防止其他人遇到同样的问题,我选择了一个简单的解决方案来解决根本问题——显示“首选项”对话框。

即使没有应用层用户首选项,仍然有帮助插件贡献的首选项面板。

在当前实施的

org.eclipse.ui.internal.carbon.CarbonUIEnhancer,
中,应用程序菜单“首选项”项需要并执行菜单中其他位置的首选项菜单项(例如,ActionFactory.PREFERENCES)。


0
投票

应用程序菜单在创建

org.eclipse.swt.widgets.Display
期间填充。

您可以按如下方式删除“首选项”菜单:

public static void configureAppMenu() {
    final NSMenu appMenu = getAppMenu();
    final Collection<NSMenuItem> itemsToRemove = newArrayList();
    for (int i = 0; i < appMenu.numberOfItems(); i++) {
        final NSMenuItem item = appMenu.itemAtIndex(i);
        if (item.tag() == SWT.ID_PREFERENCES) {
            itemsToRemove.add(item);
        }
    }
    itemsToRemove.forEach(appMenu::removeItem);
}

private static NSMenu getAppMenu() {
    return NSApplication.sharedApplication().mainMenu().itemAtIndex(0).submenu();
}
© www.soinside.com 2019 - 2024. All rights reserved.