Spec-Zone.ru › Electron

Класс: MenuItem

Класс: MenuItem​

Добавляет пункты в меню приложения и контекстные меню.

Процесс: Главный

См. Menu для примеров.

new MenuItem(options)​

  • options Объект
    • click Функция (необязательно) - Будет вызвана с click(menuItem, browserWindow, event) при нажатии на пункт меню.
      • menuItem MenuItem
      • browserWindow BrowserWindow | undefined - Не будет определено, если нет открытого окна.
      • event KeyboardEvent
    • role строка (необязательно) - Может быть 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, 'showSubstitutions', 'toggleSmartQuotes', 'toggleSmartDashes', 'toggleTextReplacement', startSpeaking, stopSpeaking, zoom, front, appMenu, fileMenu, editMenu, viewMenu, shareMenu, recentDocuments, toggleTabBar, selectNextTab, selectPreviousTab, mergeAllWindows, clearRecentDocuments, moveTabToNewWindow или windowMenu - Определяет действие пункта меню. При указании этой опции, свойство click будет проигнорировано. См. роли.
    • type строка (необязательно) - Может быть normal, separator, submenu, checkbox или radio.
    • label строка (необязательно)
    • sublabel строка (необязательно)
    • toolTip строка (необязательно) macOS - Текст подсказки для этого пункта меню.
    • accelerator Быстрая клавиша (необязательно)
    • icon (Изображение | строка) (необязательно)
    • enabled булево (необязательно) - Если false, пункт меню будет серым и неактивным.
    • acceleratorWorksWhenHidden булево (необязательно) macOS - По умолчанию true, и когда false предотвратит срабатывание быстрой клавиши, если пункт не виден.
    • visible булево (необязательно) - Если false, пункт меню будет полностью скрыт.
    • checked булево (необязательно) - Должно быть указано только для пунктов меню типа checkbox или radio.
    • registerAccelerator булево (необязательно) Linux Windows - Если false, быстрая клавиша не будет зарегистрирована в системе, но всё же будет отображаться. По умолчанию true.
    • sharingItem SharingItem (необязательно) macOS - Пункт для совместного использования, когда role shareMenu.
    • submenu (MenuItemConstructorOptions[] | Меню) (необязательно) - Должно быть указано для пунктов меню типа submenu . Если submenu указано, type: 'submenu' можно опустить. Если значение не является Menu, то оно будет автоматически преобразовано в него с помощью Menu.buildFromTemplate.
    • id строка (необязательно) - Уникальна в пределах одного меню. Если определена, может использоваться как ссылка на этот пункт с помощью атрибута position.
    • before массив строк (необязательно) - Вставляет этот пункт перед пунктом с указанной меткой. Если пункт не существует, вставляется в конец меню. Также подразумевает, что пункт должен быть размещён в той же группе, что и указанный пункт.
    • after массив строк (необязательно) - Вставляет этот пункт после пункта с указанной меткой. Если пункт не существует, вставляется в конец меню.
    • beforeGroupContaining массив строк (необязательно) - Предоставляет способ объявить расположение содержащей группы контекстного меню перед группой пункта с указанной меткой.
    • afterGroupContaining массив строк (необязательно) - Предоставляет способ объявить расположение содержащей группы контекстного меню после группы пункта с указанной меткой.

Примечание: acceleratorWorksWhenHidden указано как только для macOS, потому что быстрые клавиши всегда работают, когда пункты скрыты в Windows и Linux. Эта опция предоставлена пользователям для возможности выключения, так как это возможно в разработке нативных macOS приложений. Это свойство доступно только в macOS High Sierra 10.13 и новее.

Роли​

Роли позволяют пунктам меню иметь предопределённое поведение.

Лучше указывать role для любого пункта меню, соответствующего стандартной роли, а не пытаться реализовывать поведение вручную в функции click. Встроенное поведение role обеспечит наилучший опыт работы с родным приложением.

Значения label и accelerator являются необязательными при использовании role и будут заданы по умолчанию для каждой платформы.

Каждый пункт меню должен иметь role, label, или в случае разделителя type.

Свойство role может иметь следующие значения:

  • undo
  • about - Срабатывает родной панелью "О программе" (собственное окно-сообщение в Window, не имеющее собственного).
  • redo
  • cut
  • copy
  • paste
  • pasteAndMatchStyle
  • selectAll
  • delete
  • 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):

  • event KeyboardEvent
  • focusedWindow BrowserWindow
  • focusedWebContents WebContents

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API