Class: MenuItem
Class: MenuItem
Add items to native application menus and context menus.
Process: Main
See Menu
for examples.
new MenuItem(options)
acceleratorWorksWhenHidden
is specified as being macOS-only because accelerators always work when items are hidden on Windows and Linux. The option is exposed to users to give them the option to turn it off, as this is possible in native macOS development.
Instance Properties
The following properties are available on instances of MenuItem
:
menuItem.id
A string
indicating the item's unique id. This property can be
dynamically changed.
menuItem.label
A string
indicating the item's visible label.
menuItem.click
A Function
that is fired when the MenuItem receives a click event.
It can be called with menuItem.click(event, focusedWindow, focusedWebContents)
.
event
KeyboardEventfocusedWindow
BaseWindowfocusedWebContents
WebContents
menuItem.submenu
A Menu
(optional) containing the menu
item's submenu, if present.
menuItem.type
A string
indicating the type of the item. Can be normal
, separator
, submenu
, checkbox
, radio
, header
or palette
.
header
and palette
are only available on macOS 14 and up.
menuItem.role
A string
(optional) indicating the item's role, if set. Can be 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
, showAllTabs
, mergeAllWindows
, clearRecentDocuments
, moveTabToNewWindow
or windowMenu
menuItem.accelerator
An Accelerator
(optional) indicating the item's accelerator, if set.
menuItem.userAccelerator
Readonly macOS
An Accelerator | null
indicating the item's user-assigned accelerator for the menu item.
This property is only initialized after the MenuItem
has been added to a Menu
. Either via Menu.buildFromTemplate
or via Menu.append()/insert()
. Accessing before initialization will just return null
.
menuItem.icon
A NativeImage | string
(optional) indicating the
item's icon, if set.
menuItem.sublabel
A string
indicating the item's sublabel.
menuItem.toolTip
macOS
A string
indicating the item's hover text.
menuItem.enabled
A boolean
indicating whether the item is enabled. This property can be
dynamically changed.
menuItem.visible
A boolean
indicating whether the item is visible. This property can be
dynamically changed.
menuItem.checked
A boolean
indicating whether the item is checked. This property can be
dynamically changed.
A checkbox
menu item will toggle the checked
property on and off when
selected.
A radio
menu item will turn on its checked
property when clicked, and
will turn off that property for all adjacent items in the same menu.
You can add a click
function for additional behavior.
menuItem.registerAccelerator
A boolean
indicating if the accelerator should be registered with the
system or just displayed.
This property can be dynamically changed.
menuItem.sharingItem
macOS
A SharingItem
indicating the item to share when the role
is shareMenu
.
This property can be dynamically changed.
menuItem.commandId
A number
indicating an item's sequential unique id.
menuItem.menu
A Menu
that the item is a part of.