kak*_*kyo 5 javascript menu node.js electron
Help我正在尝试从 Electron 应用程序的菜单中删除菜单。
我不想setApplicationMenu自己这样做,因为使用默认菜单就可以了,除了帮助之外,它指向 Electron 自己的帮助页面。
我尝试了以下方法,但每种情况都失败了:
var menu = Menu.getApplicationMenu();
menu.items.pop();
Run Code Online (Sandbox Code Playgroud)
var menu = Menu.getApplicationMenu();
for(var i=0; i<menu.items.length; i++) {
if (menu.items[i].role == 'help') {
menu.items[i].visible = false;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
mainWindow.removeMenu();
Run Code Online (Sandbox Code Playgroud)
这在我的电子版本 10.1.0 的 macOS 上不起作用。
怎么了?我应该创建一个模板吗?
menuItem.visible 在 Electron 13 中不起作用。相反,我构建了一个没有帮助项的新菜单。
const menu = Menu.getApplicationMenu()
const items = menu?.items.filter((item) => item.role !== 'help')
Menu.setApplicationMenu(Menu.buildFromTemplate(items))
Run Code Online (Sandbox Code Playgroud)
Menu.setApplicationMenu修改默认菜单后必须使用
const menu = Menu.getApplicationMenu(); // get default menu
menu.items.find((item) => item.role === "help").visible = false; // modify it
Menu.setApplicationMenu(menu); // set the modified menu
Run Code Online (Sandbox Code Playgroud)
注意:根据我的经验,如果在应用程序事件之前调用Menu.getApplicationMenu()它将返回nullready