При создании окна автоматически создается стандартное меню приложения, которое содержит меню File, Edit, View, Window и Help. Каждое меню содержит основные команды. Например, в меню File присутствует пункт Exit, который позволяет завершить работу приложения. Если нужно удалить стандартное меню приложения, то в статический метод setApplicationMenu()
класса Menu
нужно передать значение null
или объект пользовательского меню:
// const { Menu } = require('electron');
Menu.setApplicationMenu(null);
Для удаления меню конкретного окна следует использовать метод removeMenu()
:
win.removeMenu();
Итак. вместо удаления меню приложения мы можем прикрепить свое собственное меню. Для этого достаточно создать шаблон меню, передать его статическому методу buildFromTemplate(<Шаблон меню>)
класса Menu
, а затем прикрепить меню с помощью статического метода setApplicationMenu(<Меню>)
:
const menu = Menu.buildFromTemplate(templateMenu);
Menu.setApplicationMenu(menu);
Меню можно также прикрепить к конкретному окну, передав объект меню в метод setMenu(<Меню>)
:
const menu = Menu.buildFromTemplate(templateMenu);
win.setMenu(menu);
Если при создании окна передать опцию autoHideMenuBar
со значением true
, то строка меню будет по умолчанию скрываться и отображаться только при нажатии клавиши <Alt> (значение по умолчанию: false
):
win = new BrowserWindow({
autoHideMenuBar: true
});
Шаблон меню представляет собой массив объектов. Название пункта меню задается в объекте с помощью свойства label
:
let templateMenu = [
{ label: 'Файл' },
{ label: 'Правка' },
{ label: 'Вид' },
{ label: 'Справка' }
];
if (process.platform === 'darwin') { // Для MacOS
templateMenu.unshift({});
}
const menu = Menu.buildFromTemplate(templateMenu);
Menu.setApplicationMenu(menu);