0

Hillegass の著書 Cocoa Programming for MAC OS X のビュー スワッピング コードから始めました。代わりに、ViewController のテーブルの行を使用して、テーブルを生成した ViewController から MyDocument.m の displayViewController を呼び出して、ViewController を交換しようとしています。

- (void)displayViewController:(ManagingViewController *)vc
                   curBox: (NSBox *)windowBox
{
// End editing
NSWindow *w = [windowBox window];
BOOL ended = [w makeFirstResponder:w];
if (!ended) {
    NSBeep();
    return;
}
...

私が抱えている問題は、MyDocument.m の NSBox 内でビューを交換できるように、MyDocument.nib でインスタンス化された Interface Builder NSBox に沿って送信する必要がある別の ViewController から displayViewController を呼び出すときです。これを行うには、Interface Builder でインスタンス化された MyDocument.nib の NSBox に、別の ViewController からアクセスできるようにする必要があります。

別のViewControllerからMyDocument.nibのInterface Builderインスタンス化されたNSBoxにアクセスする方法を知っている人はいますか?

編集:

私はいくつかの進歩を遂げました。ビューの階層は次のとおりです。

 Window
   ContentView
     NSBox

次のようにして、最上位の Window と現在の ContentView を取得できました。

NSWindow *w = self.view.window;
NSView   *v = [w contentView];

しかし、ContentView 内にある NSBox を取得する方法がまだわかりません。私は次のことを試しましたが、うまくいきませんでした:

NSBox    *b = [v container];
NSBox    *b = [v content ];

誰にもアイデアがありますか?

4

1 に答える 1