Pregunta

Tengo una aplicación de cacao con dos tipos de ventanas de cada uno de los cuales requiere un menú principal diferente a visualizar.

En mi MainMenu.xib tengo el defecto MainMenu. En Window1.xib tengo Window1 y en Window2.xib tengo Window2 y es MainMenu.

Cuando tengo la primera ventana abierta Tengo el menú por defecto, al abrir Window2 Puedo obtener su menú.

Sin embargo, al cambiar de nuevo a Window1 sigo sin ver el menú del Window2. ¿Cómo hacer que el menú que se muestra la ventana sigue clave?

¿Fue útil?

Solución

NSApplication tiene un método, - (void)setMainMenu:(NSMenu *)aMenu. Puede pasar que una referencia al menú correcto en el controlador de ventana apropiada, mediante la implementación de - (void)windowDidBecomeKey:(NSNotification *)notification.

Tenga en cuenta que puede ser más fácil de cambiar sólo los submenús en lugar de cambiar de todo el menú principal, ya que no tendrá que mantener dos copias diferentes de la aplicación, ayuda y otros menús que no cambiarán entre las dos ventanas.

Otros consejos

En general, no se debe cambiar todo el menú principal en todo momento. Es más compatible con las Directrices de interfaz humana simplemente desactivar los elementos de menú que no se aplican a la ventana actual. Y si realmente debe tener un conjunto completamente diferente de menús en la barra de menús, tal vez debería dividir esa parte de su solicitud en una solicitud por separado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top