Saltar al contenido principal

Clase: MenuItem

Clase: MenuItem

Agregue elementos a los menús y menús de contexto de la aplicación nativa.

Proceso: principal</0>

Vea Menú para obtener ejemplos.

new MenuItem(options)

  • options Object
    • click Función (opcional) - Sera llamada con click(menuItem, browserWindow, event) cuando el elemento del menú sea clickeado.
      • menuItem MenuItem
      • browserWindow BrowserWindow | undefined - Esto no se definirá si no hay alguna ventana abierta.
      • event KeyboardEvent
    • role string (optional) - 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, 'showSubstitutions', 'toggleSmartQuotes', 'toggleSmartDashes', 'toggleTextReplacement', startSpeaking, stopSpeaking, zoom, front, appMenu, fileMenu, editMenu, viewMenu, shareMenu, recentDocuments, toggleTabBar, selectNextTab, selectPreviousTab, mergeAllWindows, clearRecentDocuments, moveTabToNewWindow or windowMenu - Define the action of the menu item, when specified the click property will be ignored. Ver roles.
    • type string (optional) - Can be normal, separator, submenu, checkbox or radio.
    • label string (optional)
    • sublabel string (optional)
    • toolTip string (optional) macOS - Hover text for this menu item.
    • accelerator Accelerator (opcional)
    • icon (NativeImage | string) (optional)
    • enabled boolean (optional) - If false, the menu item will be greyed out and unclickable.
    • acceleratorWorksWhenHidden boolean (optional) macOS - default is true, and when false will prevent the accelerator from triggering the item if the item is not visible`.
    • visible boolean (optional) - If false, the menu item will be entirely hidden.
    • checked boolean (optional) - Should only be specified for checkbox or radio type menu items.
    • registerAccelerator boolean (optional) Linux Windows - If false, the accelerator won't be registered with the system, but it will still be displayed. Defaults to true.
    • sharingItem SharingItem (opcional) macOS - el elemento que se compartirá cuando el role es shareMenu.
    • submenu (MenuItemConstructorOptions[] | Menu) (opcional) - Debería especificarse para los items del tipo submenu. Si submenu es especificado, el type: 'submenu' puede ser omitido. Si el valor no es un Menu entonces automáticamente será convertido a uno usando Menu.buildFromTemplate.
    • id string (optional) - Unique within a single menu. Si se define, puede ser usado como referencia a este elemento por el atributo posición.
    • before string[] (optional) - Inserts this item before the item with the specified label. Si el ítem referenciado no existe el ítem sera insertado al final del menu. También implica que el ítem del menu en cuestión debería colocarse in el mismo “group” como el ítem.
    • after string[] (optional) - Inserts this item after the item with the specified label. Si el ítem referenciado no existe se insertara al final del menú.
    • beforeGroupContaining string[] (optional) - Provides a means for a single context menu to declare the placement of their containing group before the containing group of the item with the specified label.
    • afterGroupContaining string[] (optional) - Provides a means for a single context menu to declare the placement of their containing group after the containing group of the item with the specified label.

Note: acceleratorWorksWhenHidden es especificado como siendo macOS-solo porque los aceleradores siempre trabajan cuando los items son ocultados en Windows y Linux. La opción esta expuesta a los usuarios para darles a ellos la opción de apagarla, ya que esto es posible el el desarrollo nativo de macOS. Esta propiedad solo es usable en macOS High Sierra 10.13 o más recientes.

Roles

Los roles le permiten a los elementos del menú tener comportamientos predeterminados.

Es mejor especificar el rol para todos los elementos del menú de tal manera que coincidan con los roles estándar, en vez de tratar de implementar un comportamiento manualmente en una función click. El comportamiento incorporador rol dará la mejor experiencia nativa.

Los valores de etiqueta y acelerador son opcionales mientras se usa un rol y por defecto se apropiarán valores de cada plataforma.

Cada elemento del menu deve tener un role, label, o en el caso de un separador un type.

La propiedad role puede tener los siguientes valores:

  • deshacer
  • about - Lanza un panel de "acerca de" nativo (Cuadro de diálogo personalizado en ventana, cuando no se proporciona uno).
  • rehacer
  • cortar
  • copiar
  • pegar
  • pasteAndMatchStyle
  • selectAll
  • eliminar
  • minimize - Minimizar la venta actual.
  • close - Cerrar la ventana actual.
  • quit - Salir de la aplicación.
  • reload - Recargar la ventana actual.
  • forceReload - Recargar la ventana actual ignorando la caché.
  • toggleDevTools - Alternar herramientas de desarrollador en la ventana actual.
  • togglefullscreen - Alterna al modo de pantalla completa en la ventana actual.
  • resetZoom - Restablece el nivel de zoom de la página enfocada al tamaño original.
  • zoomIn - Zoom en la página enfocada en un 10%.
  • zoomOut - Aleja la página enfocada en un 10%.
  • toggleSpellChecker - Activar/desactivar el corrector ortográfico incorporado.
  • fileMenu - Todo el menú "Archivo" por defecto (Cerrar / Salir)
  • editMenu - Grupo por defecto de un menú "Edit" (Deshacer, Copiar, etc.).
  • viewMenu - Todo el menú "Vista" por defecto (Recargar, Activar Herramientas del Desarrollador, etc.)
  • windowMenu - Todo el menú "Ventana" por defecto (Minimizar, Zoom, etc.).

Los siguientes roles adicionales están disponibles en macOS:

  • appMenu - Todo el menú "App" por defecto (Acerca de, Servicios, etc.)
  • hide - Enlace a la acción hide.
  • hideothers - Enlace a la acción hideOtherApplications.
  • unhide - Enlace a la acción unhideAllApplications.
  • showSubstitutions - Map to the orderFrontSubstitutionsPanel action.
  • toggleSmartQuotes - Map to the toggleAutomaticQuoteSubstitution action.
  • toggleSmartDashes - Map to the toggleAutomaticDashSubstitution action.
  • toggleTextReplacement - Map to the toggleAutomaticTextReplacement action.
  • startspeaking - Enlace a la acción startSpeaking.
  • stopspeaking - Enlace a la acción stopSpeaking.
  • front - Map to the arrangeInFront action.
  • zoom - Map to the performZoom action.
  • toggletabbar - Enlace a la acción toggleTabBar.
  • selectnexttab - Enlace a la acción selectNextTab.
  • selectprevioustab - Enlace a la acción selectPreviousTab.
  • mergeallwindows - Enlace a la acción mergeAllWindows.
  • movetabtonewwindow - Enlace a la acción moveTabToNewWindow.
  • window - El submenú es un menú "Ventana".
  • help - El submenú es un menú "Ayuda".
  • services - El sub menú es una menú "Services". This is only intended for use in the Application Menu and is not the same as the "Services" submenu used in context menus in macOS apps, which is not implemented in Electron.
  • recentDocuments - El submenú es un menú "Abrir reciente".
  • clearRecentDocuments - Enlace a la acción clearRecentDocuments.
  • shareMenu - El submenú es share menu. La propiedad sharingItem debe establecerse para indicar el elemento a compartir.

Al especificar un role en macOS, label y accelerator son las únicas opciones que afectarán el elemento del menú. Todas las demás opciones serán ignoradas. Los role en minúscula, por ejemplo, toggledevtools, todavía son soportados.

Note: The enabled and visibility properties are not available for top-level menu items in the tray on macOS.

Propiedades de la instancia

Las siguientes propiedades están disponibles en instancias del menú de elementos:

A string indicating the item's unique id, this property can be dynamically changed.

A string indicating the item's visible label.

Una función que se desencadena cuando los elementos del menú reciben un evento click. Puede ser llamado con menuItem.click(event, focusedWindow, focusedWebContents).

Un Menú (opcional) que contiene el submenú del menú elemento, si está presente.

A string indicating the type of the item. Puede ser normal, separator, submenu, checkbox o radio.

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, mergeAllWindows, clearRecentDocuments, moveTabToNewWindow or windowMenu

Un Accelerator (opcional) indicando el acelerador del elemento, si está establecido.

Un Accelerator | null indicando el user-assigned accelerator del elemento para el menú del elemento.

Nota: Esta propiedad es solo inicializada después de que MenuItem a sido agregada al Menu. Ya sea a través de Menu.buildFromTemplate o a través de Menu.append()/insert(). Accediendo antes de la inicialización solo devolverá null.

A NativeImage | string (optional) indicating the item's icon, if set.

A string indicating the item's sublabel.

A string indicating the item's hover text.

A boolean indicating whether the item is enabled, this property can be dynamically changed.

A boolean indicating whether the item is visible, this property can be dynamically changed.

A boolean indicating whether the item is checked, this property can be dynamically changed.

Un elemento del menú checkbox que cambiará la propiedad verificado en sí y no cuando se selecciona.

Un elemento del menú radio que activará su propiedad verificado cuando se haga click en él, y que desactivará su propiedad para todos los elementos adyacentes en el mismo menú.

Puede añadir la función click para comportamientos adicionales.

A boolean indicating if the accelerator should be registered with the system or just displayed.

Esta propiedad puede ser cambiada dinámicamente.

Un SharingItem indicando el elemento a compartir cuando el role es shareMenu.

Esta propiedad puede ser cambiada dinámicamente.

A number indicating an item's sequential unique id.

Un Menu del cual el elemento es parte.