我有一个构建在 Eclipse 富客户端平台之上的应用程序。它还没有任何用户偏好。
目前在 Mac 上,应用程序菜单中的“首选项”菜单项已启用,但不执行任何操作。
有没有简单的方法来隐藏或禁用它?
为了防止其他人遇到同样的问题,我选择了一个简单的解决方案来解决根本问题——显示“首选项”对话框。
即使没有应用层用户首选项,仍然有帮助插件贡献的首选项面板。
在当前实施的
org.eclipse.ui.internal.carbon.CarbonUIEnhancer,
中,应用程序菜单“首选项”项需要并执行菜单中其他位置的首选项菜单项(例如,ActionFactory.PREFERENCES)。
应用程序菜单在创建
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();
}