NSWindow
InterfaceBuilderで設定しました。のクラスを自分に設定し、コントローラーのプロパティFile's Owner
を自分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
これがアプリケーションデリゲートであることに注意してください。