Класс: MenuItem
Класс: MenuItem
Добавляет пункты в меню приложения и контекстные меню.
Процесс: Главный
См. Menu для примеров.
new MenuItem(options)
Примечание: acceleratorWorksWhenHidden указано как только для macOS, потому что быстрые клавиши всегда работают, когда пункты скрыты в Windows и Linux. Эта опция предоставлена пользователям для возможности выключения, так как это возможно в разработке нативных macOS приложений. Это свойство доступно только в macOS High Sierra 10.13 и новее.
Роли
Роли позволяют пунктам меню иметь предопределённое поведение.
Лучше указывать role для любого пункта меню, соответствующего стандартной роли, а не пытаться реализовывать поведение вручную в функции click. Встроенное поведение role обеспечит наилучший опыт работы с родным приложением.
Значения label и accelerator являются необязательными при использовании role и будут заданы по умолчанию для каждой платформы.
Каждый пункт меню должен иметь role, label, или в случае разделителя type.
Свойство role может иметь следующие значения:
undo-
about- Срабатывает родной панелью "О программе" (собственное окно-сообщение в Window, не имеющее собственного). redocutcopypastepasteAndMatchStyleselectAlldelete-
minimize- Свернуть текущее окно. -
close- Закрыть текущее окно. -
quit- Выйти из приложения. -
reload- Перезагрузить текущее окно. -
forceReload- Перезагрузить текущее окно, игнорируя кэш. -
toggleDevTools- Переключить инструменты разработчика в текущем окне. -
togglefullscreen- Переключить полноэкранный режим в текущем окне. -
resetZoom- Сбросить уровень масштабирования фокусированной страницы до исходного размера. -
zoomIn- Увеличить масштаб фокусированной страницы на 10%. -
zoomOut- Уменьшить масштаб фокусированной страницы на 10%. -
toggleSpellChecker- Включить/выключить встроенную проверку правописания. -
fileMenu- Весь стандартный раздел "Файл" (Закрыть / Выйти). -
editMenu- Весь стандартный раздел "Правка" (Отменить, Копировать и т.д.). -
viewMenu- Весь стандартный раздел "Вид" (Перезагрузить, Переключить инструменты разработчика и т.д.). -
windowMenu- Весь стандартный раздел "Окно" (Свернуть, Масштабировать и т.д.).
Следующие дополнительные роли доступны на macOS:
-
appMenu- Весь стандартный раздел "Приложения" (О программе, Сервисы и т.д.). -
hide- Сопоставление со действиемhide. -
hideOthers- Сопоставление со действиемhideOtherApplications. -
unhide- Сопоставление со действиемunhideAllApplications. -
showSubstitutions- Сопоставление со действиемorderFrontSubstitutionsPanel. -
toggleSmartQuotes- Сопоставление со действиемtoggleAutomaticQuoteSubstitution. -
toggleSmartDashes- Сопоставление со действиемtoggleAutomaticDashSubstitution. -
toggleTextReplacement- Сопоставление со действиемtoggleAutomaticTextReplacement. -
startSpeaking- Сопоставление со действиемstartSpeaking. -
stopSpeaking- Сопоставление со действиемstopSpeaking. -
front- Сопоставление со действиемarrangeInFront. -
zoom- Сопоставление со действиемperformZoom. -
toggleTabBar- Сопоставление со действиемtoggleTabBar. -
selectNextTab- Сопоставление со действиемselectNextTab. -
selectPreviousTab- Сопоставление со действиемselectPreviousTab. -
mergeAllWindows- Сопоставление со действиемmergeAllWindows. -
moveTabToNewWindow- Сопоставление со действиемmoveTabToNewWindow. -
window- Подменю - "Окно". -
help- Подменю - "Справка". -
services- Подменю - "Сервисы". Предназначено только для меню Приложения и не совпадает с подменю "Сервисы" в контекстных меню macOS приложений, которые в Electron не реализованы. -
recentDocuments- Подменю - "Недавние файлы". -
clearRecentDocuments- Сопоставление со действиемclearRecentDocuments. -
shareMenu- Подменю - меню совместного использования. СвойствоsharingItemтакже должно быть установлено для указания пункта для совместного использования.
При указании role на macOS, label и accelerator - единственные опции, которые повлияют на пункт меню. Все остальные опции будут проигнорированы. Маленькие буквы role, например toggledevtools, всё ещё поддерживаются.
Примечание: Свойства enabled и visibility недоступны для пунктов меню верхнего уровня в области уведомлений на macOS.
Свойства экземпляра
Следующие свойства доступны для экземпляров MenuItem:
menuItem.id
Значение string, указывающее уникальный идентификатор элемента; это свойство можно динамически изменить.
menuItem.label
Значение string, указывающее видимую метку элемента.
menuItem.click
Значение Function, которое срабатывает при клике по элементу MenuItem. Оно может вызываться со значениями menuItem.click(event, focusedWindow, focusedWebContents):
-
eventKeyboardEvent -
focusedWindowBrowserWindow -
focusedWebContentsWebContents
menuItem.submenu
Значение Menu (необязательно), содержащее подменю элемента, если оно есть.
menuItem.type
Значение string, указывающее тип элемента. Может быть normal, separator, submenu, checkbox или radio.
menuItem.role
Значение string (необязательно), указывающее роль элемента, если она задана. Может быть undo, redo, cut, copy, paste, pasteAndMatchStyle, delete, selectAll, reload, forceReload, toggleDevTools, resetZoom, zoomIn, zoomOut, toggleSpellChecker, togglefullscreen, window, minimize, close, help, about, services, hide, hideOthers, unhide, quit, startSpeaking, stopSpeaking, zoom, front, appMenu, fileMenu, editMenu, viewMenu, shareMenu, recentDocuments, toggleTabBar, selectNextTab, selectPreviousTab, mergeAllWindows, clearRecentDocuments, moveTabToNewWindow или windowMenu
menuItem.accelerator
Значение Accelerator (необязательно), указывающее акцелератор элемента, если он задан.
menuItem.userAccelerator Только для чтения macOS
Значение Accelerator | null указывающее назначенный пользователем акцелератор для элемента меню.
Примечание: Это свойство инициализируется только после того, как MenuItem был добавлен в Menu. Либо через Menu.buildFromTemplate, либо через Menu.append()/insert(). Доступ к нему до инициализации вернет null.
menuItem.icon
Значение NativeImage | string (необязательно), указывающее значок элемента, если он задан.
menuItem.sublabel
Значение string, указывающее дополнительную метку элемента.
menuItem.toolTip macOS
Значение string, указывающее всплывающую подсказку элемента.
menuItem.enabled
Значение boolean, указывающее, включён ли элемент, это свойство можно изменять динамически.
menuItem.visible
Значение boolean, указывающее, виден ли элемент, это свойство можно изменять динамически.
menuItem.checked
Значение boolean, указывающее, отмечен ли элемент, это свойство можно изменять динамически.
Элемент меню checkbox будет переключать свойство checked при выборе.
Элемент меню radio включит своё свойство checked при нажатии и выключит это свойство для всех смежных элементов в том же меню.
Вы можете добавить функцию click для дополнительного поведения.
menuItem.registerAccelerator
Значение boolean, указывающее, следует ли регистрировать акцелератор в системе или только отображать его.
Это свойство можно изменять динамически.
menuItem.sharingItem macOS
Значение SharingItem, указывающее элемент для совместного использования, когда role shareMenu.
Это свойство можно изменять динамически.
menuItem.commandId
Значение number, указывающее последовательный уникальный идентификатор элемента.
menuItem.menu
Значение Menu, указывающее, что элемент входит в состав.
© GitHub Inc.
Licensed under the MIT license.
https://www.electronjs.org/docs/latest/api/menu-item