문제

두 가지 유형의 창이있는 코코아 앱이 있으며 각각 다른 메인 메뉴를 표시해야합니다.

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 지침을 더 많이 준수합니다. 그리고 메뉴 표시 줄에 완전히 다른 메뉴 세트가 있어야한다면 응용 프로그램의 해당 부분을 별도의 응용 프로그램으로 분할해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top