へんてこのブログ

日々気づいたことや、最近やっていることを書いています

NSWindowControllerからNSViewControllerを呼ぶときにはまった

NSWindowControllerを継承した独自クラスからNSViewcontrollerを継承した独自クラスを呼び出すときに少しはまった

基本的にはこんな感じで書けばいいと思う

self.myViewController = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil];
self.myViewController.representedObject = self;
    
NSView *myView = self.myViewController.view;
myView.frame = self.mainCustomView.frame;
[myView setFrameOrigin:NSZeroPoint];
[self.mainCustomView addSubview:myView];

この時、self.myViewController.viewがnullになってしまい、window内のcustom viewにviewが表示されなかった
そんな時はインターフェースビルダーでFile's OwnerをCtrで選択して対象のviewに接続する必要があった

f:id:henteko07:20140224152155p:plain

これでviewを選択したら関連づけされた

参考

iphone - "loaded nib but the view outlet was not set" exception - Stack Overflow
Xcode:開発途中からIB(xibファイル)を追加する | www.sirochro.com