2011-07-31 10 views
0

2つのnibファイルを持つXcodeでプログラムを作成しています。それぞれに別々のNSWindowが含まれています。最初はMainMenu.xibのスタートアップです。私はその中にボタンをクリックすると、私は(アプリデリゲートから)私の2番目のビューをロードするためにこれを使用するには:インタフェースBuilderが作成するクラスにデリゲートを設定するにはどうすればよいですか?

myControl = [[NSWindowController alloc] initWithWindowNibName:@"ServerWindow"]; 
[myControl showWindow:self]; 

この第二のXIB(ServerWindow.xib)は問題なくロードされ、そしてそれがServerWindowを持っています。 hとServerWindow.mが接続されています(NSObjectに夢中で、IBのこのクラスを指し示しました)

次に、ServerWindowでいくつかの設定を行い、このウィンドウを閉じると、これらの設定を元に戻したい

問題は、クラス(ServerWindow.h)のインスタンスを作成していませんが、Interface Builderこれは、いくつかの魔法のように、XIBをロードするときには、私はそれを委任して元のクラスを設定しません。

元のクラスにメッセージを戻すにはどうすればよいですか?

答えて

3

オブジェクトを2番目のxibにドラッグし、右側/検査/属性パネルでクラスを元のクラスに設定します。 ctrをクリックして、コントローラオブジェクトから作成したばかりのオブジェクトにドラッグし、デリゲートとして設定します。

0

私はあなたを正しく理解しているとは思えませんが、awakeFromNibまたはInterface Builderでもデリゲートとして自分自身を設定することはできませんか?また、WindowControllerのwindowプロパティにアクセスして、サーバウィンドウで取得することもできます。

+0

私は、Interface BuilderからFile's Ownerデリゲートを簡単に設定することはできません。うまくいけば、viewDidLoadではいつでも 'self.delegate = self;'を使うことができます。 –

関連する問題