나는 Interface Builder에서 NSWindow
을 설정했습니다. 클래스를 내 NSWindowController
으로 설정하고 컨트롤러의 window
속성을 내 NSWindow
에 연결했습니다. 내 컨트롤러는 NSWindowDelegate
을 구현합니다. 수신 창 알림
- (void)windowDidLoad
{
[super windowDidLoad];
[self.window setDelegate:self];
}
- (void)windowDidBecomeMain:(NSNotification *)notification
{
NSLog(@"Did become main.");
}
은 여전히 -windowDidBecomeMain:
는
편집 :
발사에 AppDelegate
에서 창을 보여주기 위해 노력. 메인 펜촉 (Info.plist
에 선언 됨)에는 AppDelegate
에 연결된 메뉴 항목 만 있습니다. 응용 프로그램 대리자에서 상태 표시 줄에 아이콘을 표시하고이 아이콘을 클릭하면 주 펜촉의 메뉴가 표시됩니다. 응용 프로그램 대리자에서 논리를 처리하도록 지정된 창 컨트롤러가 있어야하는 창을 표시하려고합니다. 이 기능이 작동하면 창 알림을 받게 될 것입니다.
이제 다음 코드는 창을 표시하지 않으며 그 이유를 파악할 수 없습니다.
DemoWindowController *dwc = [[DemoWindowController alloc] initWithWindowNibName:@"DemoWindowController"];
[dwc showWindow:self];
self
은 응용 프로그램 대리인입니다.
창 컨트롤러는 실제로 창을 여는 개체입니까? 그렇지 않으면 파일 소유자가 올바르게 설정되지 않습니다. –
저는 Mac OS 개발에 익숙하지 않지만 몇 년 동안 iOS 개발을 해오 고 있습니다. 솔직히, 저는 윈도우 컨트롤러의 역할과 어플리케이션 위임자의 역할을 알아내는 데 어려움을 겪습니다. iOS 및 Mac OS에서 동일한 것은 아닙니다. AppDelegate에서 창 컨트롤러를 인스턴스화합니다. 이것이 내가 통지를받지 못하는 이유는 무엇인가? – simonbs
응용 프로그램이 문서 기반 응용 프로그램입니까, 아니면 아닙니다? –