코코아의 기본 메뉴를 어떻게 변경합니까?
-
21-08-2019 - |
문제
두 가지 유형의 창이있는 코코아 앱이 있으며 각각 다른 메인 메뉴를 표시해야합니다.
MainMenu.xib에는 기본 메인 메뉴가 있습니다. Window1.xib I에는 Window1이 있고 Window2.xib I에는 Window2가 있으며 MainMenu입니다.
첫 번째 창이 열리면 기본 메뉴가 있습니다. Window2를 열면 메뉴가됩니다.
그러나 Window1로 다시 전환 할 때 여전히 Window2의 메뉴가 표시됩니다. 표시된 메뉴를 키를 따라가는 방법은 무엇입니까?
해결책
nsapplication에는 방법이 있으며 - (void)setMainMenu:(NSMenu *)aMenu
. 구현하여 해당 창 컨트롤러의 올바른 메뉴에 대한 참조를 전달할 수 있습니다. - (void)windowDidBecomeKey:(NSNotification *)notification
.
응용 프로그램, 도움말 및 두 개의 창 사이에 변경되지 않는 기타 메뉴의 두 가지 사본을 유지할 필요가 없기 때문에 전체 메인 메뉴를 교체하는 대신 하중 메뉴 만 변경하는 것이 더 쉬울 수 있습니다. .
다른 팁
일반적으로 매번 전체 메인 메뉴를 교체해서는 안됩니다. 현재 창에 적용되지 않는 메뉴 항목을 간단히 비활성화하기 위해 Human Interface 지침을 더 많이 준수합니다. 그리고 메뉴 표시 줄에 완전히 다른 메뉴 세트가 있어야한다면 응용 프로그램의 해당 부분을 별도의 응용 프로그램으로 분할해야합니다.
제휴하지 않습니다 StackOverflow