Cuando diseñes una barra de menús mediante el Editor de Menús, puedes ajustar las diferentes propiedades de los `MenuItem` a través del Panel Inspector asociado con cada elemento. De hecho, sólo es posible asignar algunas de las propiedades mediante el Panel Inspector, tales como el uso de la tecla alternativa, la tecla modificadora o la tecla Control en combinación con la tecla de acceso asociada al atajo de teclado. Adicionalmente, sólo es posible asignar la tecla aceleradora (Windows y Linux) mediante el Panel Inspector y no desde código. En concreto, estas son las propiedades que se mantienen como sólo de lectura cuando se accede a ellas desde código:
- AlternateMenuModifier. Valor Booleano que representa el uso de la tecla
Shift
o Mayúsculas móviles en todas las plataformas soportadas. - MacControlKey. Valor Booleano que representa el uso de la tecla
Control
(Ctrl
) en macOS. - MacOptionKey. Valor Booleano que representa el uso de la tecla
Opcion
(Alt
) en macOS. - PCAltKey. Valor Booleano que representa el uso de la tecla
Alt
en los teclados de Windows y Linux. - MenuModifier. Valor Booleano que representa el uso de la tecla
Comando
(Cmd
) en macOS, yControl
(Ctrl
) en Windows y Linux.
Si bien dichas propiedades se mantienen como sólo de lectura, aun puedes utilizar las teclas especiales que representan en la combinación de acceso a un comando, utilizando los siguientes valores en combinación con un guión medio y la tecla de comando en cuestión. No importa en qué orden se indiquen:
- Cmd. Tecla Comando en macOS.
- Alt. Tecla Opción en macOS y Alt en Windows y Linux.
- Shift. Mayúsculas móviles en Windows, macOS y Linux.
- Ctrl. Tecla Control en todos los sistemas soportados.
Por ejemplo:
MyMenuItem.KeyboardShortcut = "cmd-shift-ctrl-alt-U"
Producirá el mismo resultado visualmente que si se define como:
MyMenuItem.KeyboardShortcut = "ctrl-shift-cmd-alt-U"
Otras propiedades interesantes del Panel Inspector (y cuando creas elementos de menú por código) son las siguientes, si bien por lo general probablemente desees emplear sus valores por omisión:
- Visible. Disponible bajo la sección
Appearance
del Editor de Menús para todos los elementos de menú. Cuando está ajustado aOn
o con el valorTrue
si es desde código, el elemento de menú será visible en la barra de menús. - AutoEnable. Dispomnible bajo la sección
Behavior
para todos los elementos de menú excepto los de primer nivel. Por omisión su valor es deOn
en el Editor de Menús y deTrue
para los nuevos elementos creados de forma dinámica mediante código. Esto permite que el elemento de menú siempre aparezca como disponible en el menú, siempre y cuando tenga asociado un Manejador de Menú. Si utilizamos el valorOff
en el Editor de Menús, oFalse
en la creación de un nuevo elemento de menú desde código, entonces deberemos de implementar el Manejador de EventoEnableMenuItems
en la ventana asociada con la barra de menús o bien en el objeto App, e indicar aquí si deseamos activar (que parezca activo) o no el elemento de menú en cuestión. La aplicación ejecutará este evento cada vez que el usuario haga clic sobre la barra de menús o bien cuando el usuario a utilizado cualquiera de los atajos de teclado asociados a los elementos de menú. Por ejemplo, podemos desear que ciertos elementos de menú estén activos solo en función de ciertas condiciones, como que el usuario haya seleccionado previamente un elemento determinado en la interfaz de usuario. Un caso típico serían las opciones de Copiar, Cortar y Pegar texto.