MenuItem
Class: MenuItem
Add items to native application menus and context menus.
Process: Main
See Menu for examples.
Electron's built-in classes cannot be subclassed in user code. For more information, see the FAQ.
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).
eventKeyboardEventfocusedWindowBaseWindowfocusedWebContentsWebContents
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.