私が抱えている問題は、設定ウィンドウを開いてから閉じると、再び開かないことです。なぜこれが起こっているのですか、どうすれば修正できますか?
EDIT:メインウィンドウにも同じ問題があることに気付きました。
ウィンドウはメニューバーから開かれており、別の NIB ファイルにあります。
私が抱えている問題は、設定ウィンドウを開いてから閉じると、再び開かないことです。なぜこれが起こっているのですか、どうすれば修正できますか?
EDIT:メインウィンドウにも同じ問題があることに気付きました。
ウィンドウはメニューバーから開かれており、別の NIB ファイルにあります。
ウィンドウコントローラーの「ウィンドウ」アウトレット(ファイルの所有者であるNib内)をウィンドウを指すように設定するのを忘れたようです。「ウィンドウ」アウトレットを接続すると、ウィンドウ コントローラの showWindow: メソッドが機能します。
コードを見ずに言うのは難しいですが、1 つの可能性として、Interface Builder でウィンドウの [閉じたときに解放] をオンにしていて、ウィンドウを一度読み込んでキャッシュし、閉じて再度開くことができると期待している可能性があります。ペン先から再度ロードする必要はありません。
私のような他の初心者にとって、この問題を抱えている:)
ファイルの所有者クラスをコントローラ クラスと同じに設定することを忘れないでください。そうすれば、'window' アウトレットをパネルに接続できます。
Aaron Hillegass の Cocoa Programming for Mac OS X book の第 12 章 (Nib ファイルと NSWindowController) の演習に取り組んでいるときに、これと同じ問題に遭遇しました。上記の Doug の回答が解決策でした。Preferences.xib のファイル所有者のウィンドウ アウトレットをウィンドウ自体 (この場合は Panel (Preferences) ウィンドウ) にリンクしていませんでした。
Preferences.xib ファイルの「File's Owner」を右クリックし、マウスの左ボタンを Window アウトレットから Panel (Preferences) にドラッグしました。完了して再構築すると、アプリケーションは意図したとおりに機能しました。カスタム設定パネルを閉じて再度開くことができましたが、以前の設定はまだそこにありました (設定ウィンドウがアンロードされずに非表示になっているため)。