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

目标

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


我不想setApplicationMenu自己做,因为使用默认菜单很好,除了帮助,它指向 Electron 自己的帮助页面。


尝试

我尝试了以下方法并在每种情况下都失败了:


去掉尾项,即Help

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();

这在我的 electron 版本 10.1.0 的 macOS 上不起作用。


问题

怎么了?我应该创建一个模板吗?


www说
浏览 276回答 2
2回答

有只小跳蛙

Menu.setApplicationMenu修改默认菜单后必须使用const menu = Menu.getApplicationMenu(); // get default menumenu.items.find((item) => item.role === "help").visible = false; // modify itMenu.setApplicationMenu(menu); // set the modified menu注意:根据我的经验,如果在应用程序事件之前调用它Menu.getApplicationMenu()将会返回nullready

吃鸡游戏

menuItem.visible 在 Electron 13 中不起作用。相反,我构建了一个没有帮助项的新菜单。&nbsp; const menu = Menu.getApplicationMenu()&nbsp; const items = menu?.items.filter((item) => item.role !== 'help')&nbsp; Menu.setApplicationMenu(Menu.buildFromTemplate(items))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript