창을 포함하는 펜촉 (winA.xib)이 있습니다. 내 응용 프로그램 대리인은 WinAController라는 NSWindowController 하위 클래스를 포함합니다.MainMenu에서 특정 메뉴 항목 가져 오기
WinAController에는 MainMenu를 가리키는 속성 (NSMenu * mainMenu)이 있습니다.
WinAController = [[WinAController alloc] initWithWindowNibName:@"WinA"];
WinAController.mainMenu = [NSApp mainMenu];
은 내가 [WinAController이 ShowWindow] 메소드를 호출 위나을 표시 MAINMENU의 "창"최상위 메뉴 항목 아래에있는 메뉴 항목이 :이 코드 WinAController를 인스턴스화 한 후 나는 그것을 설정했습니다. WinA가 표시되는지 여부에 따라이 메뉴 항목의 켜짐/꺼짐 상태를 토글합니다. WinAController에는 또 다른 속성 (NSMenuItem * myMenuItem)이 있습니다.
"윈도우"최상위 메뉴 항목의 하위 메뉴에 대한 참조를 얻으려면 어떻게해야합니까? 하위 메뉴 항목의 제목은 "Command"입니다. 나는 이것을 시도했다 :
if (mainMenu != nil) {
myMenuItem = [mainMenu itemAtIndex:[mainMenu indexOfItemWithTitle:@"Command"]];
}
그러나 그것은 작동하지 않는다.
어디로 잘못 가고 있습니까?
감사합니다,
편집 : 지금 mainMenu.xib에 WinAController에 놓여있다. 나는 WinA (winA.xib에서) 파일의 소유자를 WinAController 클래스로 설정했다. 그러나 다른 닙에 있기 때문에 WinAController의 창 IBOutlet을 WinA에 연결하는 방법을 알 수 없다!
저는 파일을 열람하기가 매우 쉽습니다. 지금까지 해본 결과 많은 것들이 프로그래밍 방식으로 만들어졌습니다. IB에서 커스텀 NSWindowController를 만드는 것에 대해서는 확신이 없습니다. 아마도 지금 다시 생각할 것입니다. 실제로 IB 코드는 때때로 Xcode보다 복잡합니다! – Garry
제쳐두고, 윈도우 콘센트에 창 콘센트를 연결하고 MainMenu.nib에 메뉴 항목 콘센트를 연결합니다. –