2011-12-06 3 views
0

私はアプリケーションにNSPopOverを追加しようとしていますが、10.7以降を実行しているときにのみロードします。私は別のXIBでポップオーバー、ビューコントローラ&ビューを入れていると私のアプリを委任awakeFromNibメソッド内からLoadNibNamedはコンセントを設定していません

BOOL loaded = [NSBundle loadNibNamed:@"Popovers.xib" owner:self]; 

でそれをロードしています。 xibはOKをロードします(ロードされています)が、NSPopoverを指すコンセントはnullのままです。 awakeFromNibメソッドの中にxibをロードする際に問題はありますか?

興味深いことに、ファイル名に.xib拡張子が含まれていないと、クラッシュしました。

+0

私は同様の問題があります。私のnibは正常にロードされますが、アウトレットはすべてNULLです。 – ctpenrose

答えて

1

NSBundleのloadNibNamed:owner:メソッドはバンドルをロードするだけで、トップレベルのオブジェクトをインスタンス化することはできません。適切なNSNibメソッドを使用すると、これを行うことができます。 instantiateNibWithOwner:topLevelObjects :.

IはNSViewControllerサブクラスのインスタンスを作成することにより、ペン先をロードすることを好む:次いで

viewController = [[MyViewController alloc] initWithNibName:@"name" bundle:[NSBundle mainBundle]] 

とカスタム・ビュー・コントローラの内部にペン先をインスタンス - (ID)initWithNibName:(NSStringの*)nibNameOrNilバンドル:(NSBundle * )nibBundleOrNilメソッド:

関連する問題