Question

J'ai une application de cacao avec deux types de fenêtres dont chacune a besoin d'un autre menu principal à afficher.

Dans mon MainMenu.xib j'ai la valeur par défaut MainMenu. Dans Window1.xib je Window1 et Window2.xib je Window2 et il est MainMenu.

Quand j'ai la première fenêtre ouverte, j'ai le menu par défaut, quand j'ouvre Window2-je obtenir son menu.

Cependant, quand je reviens au Window1 Je vois encore le menu de Window2. Comment puis-je faire le menu qui est affiché suivez la fenêtre clé?

Était-ce utile?

La solution

NSApplication a une méthode, - (void)setMainMenu:(NSMenu *)aMenu. Vous pouvez transmettre une référence au menu correct dans le contrôleur de fenêtre appropriée, en mettant en place - (void)windowDidBecomeKey:(NSNotification *)notification.

Gardez à l'esprit, il peut être plus facile de changer simplement les sous-menus au lieu d'échanger sur l'ensemble du menu principal, puisque vous ne devrez pas conserver deux copies de la demande différentes, l'aide et d'autres menus qui ne changeront pas entre les deux fenêtres.

Autres conseils

En général, vous ne devriez pas remplacer tout le menu principal à chaque fois. Il est plus conforme aux directives d'interface utilisateur de désactiver simplement des éléments de menu qui ne sont pas applicables à la fenêtre en cours. Et si vous devriez vraiment avoir un ensemble complètement différent des menus dans la barre de menus, peut-être vous devez diviser cette partie de votre application dans une application séparée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top