NSWindowController を拡張するクラス BrowserWindowController があります。私のアプリ デリゲートには、アプリの起動時にインスタンス変数を割り当て、初期化し、ポイントする BrowserWindowController があります。次に、そのウィンドウを表示します。目標は、NIB からのウィンドウを表示することです。
ただし、私が使用しているコードは、最終的に 2 つの BrowserWindowControllers を割り当て、両方を初期化します。BWC の initWithWindow メソッドが呼び出されるタイミングを追跡するために、デバッガーを使用しました。
browser = [[BrowserWindowController alloc] initWithWindowNibName:@"BrowserWindow"]; //this calls initWithWindow as expected
[browser showWindow:nil]; //this allocates ANOTHER BWC and calls initWithWindow on it!
showWindow は新しい BrowserWindowController を作成しています。それが作成する新しいオブジェクトを指すものはわかりません。それは私にとって大きな問題です。これを回避する方法、または別の方法を使用してウィンドウを表示する方法はありますか? または、何らかの理由で showWindow が作成するコントローラーへのポインターを少なくとも取得できますか?