簡體   English   中英

電子:如何從默認菜單中刪除菜單項?

[英]electron: How to remove a menu item from the default menu?

目標

我正在嘗試從 Electron 應用程序的菜單中刪除Help菜單。

我不想setApplicationMenu我自己的,因為它的優良使用默認的菜單除了幫助,這點電子自己的幫助頁面。

嘗試

我嘗試了以下方法,但在每種情況下都失敗了:

去掉尾部項,即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();

這在我的電子版本:10.1.0 的 macOS 上不起作用。

怎么了? 我應該創建一個模板嗎?

修改默認菜單后必須使用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

注意:根據我的經驗,如果在應用程序ready事件之前調用Menu.getApplicationMenu()將返回null

menuItem.visible 在 Electron 13 中不起作用。相反,我構建了一個沒有幫助項的新菜單。

  const menu = Menu.getApplicationMenu()
  const items = menu?.items.filter((item) => item.role !== 'help')
  Menu.setApplicationMenu(Menu.buildFromTemplate(items))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM