电子:如何从默认菜单中删除菜单项?

时间:2020-09-11 04:39:44

标签: javascript node.js menu electron

目标

我正在尝试从Electron应用程序的菜单中删除Help菜单。

我不想自己setApplicationMenu,因为可以使用默认菜单(帮助除外),该菜单指向Electron自己的帮助页面。

尝试

我尝试了以下方法,但在每种情况下均失败:

删除尾部项目,即帮助

var menu = Menu.getApplicationMenu();
menu.items.pop();

使其不可见

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;
    }
}

删除菜单

mainWindow.removeMenu();

在我的电子版本为10.1.0的macOS上,这不起作用。

问题

怎么了?我应该改为创建模板吗?

1 个答案:

答案 0 :(得分:1)

修改默认菜单后,您必须使用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

注意:根据我的经验,如果在应用Menu.getApplicationMenu()事件之前调用null,则会返回ready