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

See Menu for examples.

new MenuItem(options)

  • options Object
    • click Función (opcional) - Sera llamada con click(menuItem, window, event) cuando el elemento del menú sea clickeado.
      • menuItem MenuItem
      • window BaseWindow | undefined - This will not be defined if no window is open.
      • 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, showAllTabs, mergeAllWindows, clearRecentDocuments, moveTabToNewWindow or windowMenu - Define the action of the menu item, when specified the click property will be ignored. Ver roles.
    • type string (opcional) - Puede ser normal, separador, submenu, checkbox o radio.
    • label string (opcional)
    • sublabel string (opcional)
    • toolTip string (opcional) macOS - Texto flotante para es elemento del menú.
    • accelerator Accelerator (optional)
    • icon (NativeImage | string) (optional)
    • enabled boolean (opcional) - Si es falso, el elemento de menú será gris y no se podrá hacer click en él.
    • 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 (opcional) - Si es falso, el elemento del menú será totalmente invisible.
    • checked boolean (opcional) - Solo debe especificarse para elementos del menú tipo checkbox o radio.
    • registerAccelerator boolean (opcional) Linux Windows - Si es false, el acelerador no se registrará en el sistema, pero seguirá siendo visible. 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 (opcional) - único dentro de un solo menú. 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 id. 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 id. 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 id.
    • 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 id.

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.

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 - Enlace a la acción orderFrontSubstitutionsPanel.
  • toggleSmartQuotes - Enlace a la acción toggleAutomaticQuoteSubstitution.
  • toggleSmartDashes - Enlace a la acción toggleAutomaticDashSubstitution.
  • toggleTextReplacement - Enlace a la acción toggleAutomaticTextReplacement.
  • startspeaking - Enlace a la acción startSpeaking.
  • stopspeaking - Enlace a la acción stopSpeaking.
  • front - Enlace a la acción arrangeInFront.
  • zoom - Enlace a la acción performZoom.
  • toggletabbar - Enlace a la acción toggleTabBar.
  • selectnexttab - Enlace a la acción selectNextTab.
  • selectprevioustab - Enlace a la acción selectPreviousTab.
  • showAllTabs - Map to the showAllTabs action.
  • 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". Esto está destinado únicamente para su uso en el menú de la aplicación y no es lo mismo que el submenú "Servicios" utilizado en los menús contextuales de las aplicaciones de macOS, el cual no está implementado en 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:

Un string indicando la etiqueta visible del elemento, esta propiedad puede ser cambiada dinámicamente.

Un string indicando la etiqueta visible del elemento.

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.

Un string indicando el tipo del elemento. Puede ser normal, separator, submenu, checkbox o radio.

Una string (opcional) indicando el rol del elemento, si está establecido. 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

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.

Una NativeImage | string (opcional) indicando el icono del elemento, si estuviera establecido.

Un string indicando la sub-etiqueta del elemento.

Un string indicando el texto flotante del elemento.

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.

Un boolean que indica si el acelerador debe ser registrado con el sistema o solo mostrado.

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.

Un number indicando el id único secuencial de un elemento.

Un Menu del cual el elemento es parte.