Frage

Ich habe eine Kakao -App mit zwei Typen. Windows muss jeweils ein anderes Hauptmenü angezeigt werden.

In meinem Mainmenu.xib habe ich den Standard -Mainmenu. In window1.xib habe ich window1 und in window2.xib ich habe window2 und es ist Mainmenu.

Wenn ich das erste Fenster geöffnet habe, habe ich das Standardmenü, wenn ich das Fenster2 öffne2, bekomme ich das Menü.

Wenn ich jedoch zu Windows1 zurückschalte, sehe ich immer noch das Menü Window2. Wie mache ich das Menü, das angezeigt wird, dem Schlüsselfenster?

War es hilfreich?

Lösung

NSapplication hat eine Methode, - (void)setMainMenu:(NSMenu *)aMenu. Sie können es einen Verweis auf das richtige Menü im entsprechenden Fenstercontroller durchführen, indem Sie implementieren - (void)windowDidBecomeKey:(NSNotification *)notification.

Beachten Sie, dass es möglicherweise einfacher sein kann, nur den Untermenüs zu ändern, anstatt das gesamte Hauptmenü auszutauschen, da Sie nicht zwei verschiedene Kopien der Anwendung, Hilfe und anderen Menüs führen müssen, die sich nicht zwischen den beiden Fenstern ändern .

Andere Tipps

Im Allgemeinen sollten Sie nicht jedes Mal das gesamte Hauptmenü ersetzen. Es entspricht den Richtlinien für menschliche Schnittstellen, um einfach alle Menüelemente zu deaktivieren, die nicht für das aktuelle Fenster gelten. Und wenn Sie wirklich einen ganz anderen Satz von Menüs in der Menüleiste haben sollten, sollten Sie diesen Teil Ihrer Anwendung möglicherweise in eine separate Anwendung teilen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top