InterfaceBuilderとNSViewControllerを使用してビューをロードすることに頭を悩ませています。
私の目標は、次の説明を満たすビューを作成することです。ビューの幅全体に広がる上部のトップバー(ツールバーのようですが、正確ではありません)と、その下の2番目の「コンテンツビュー」。NSViewController
この複合ビューは、私のサブクラスが所有しています。
これにはInterfaceBuilderを使用するのが理にかなっています。ビューペン先を作成し、それに2つのサブビューを追加して、適切にレイアウトしました(トップバーとコンテンツビューを使用)。に設定File's Owner
しMyViewController
、コンセントなどを接続しました。
ロードしたいビュー(バーとコンテンツ)も独自のペン先にあり(これは私をつまずかせる可能性があります)、それらのペン先には、該当する場合、それぞれのNSViewサブクラスに設定されたカスタムクラスがあります。彼らに何を設定すればいいのかわからない(彼らの所有者になるはずなのでFile's Owner
推測している)。MyController
残念ながら、インスタンスを初期化するMyViewController
と、どのペン先も実際には表示されません。私はそれをウィンドウのcontentViewに適切に追加しました(他の方法でチェックしました)、そして実際には、物事は一種の負荷です。つまり、awakeFromNib
バービューに送信されますが、ウィンドウには表示されません。私は間違いなくどこかでいくつかのワイヤーが交差していると思います。おそらく誰かが私の欲求不満の一部を和らげるために手を貸すことができますか?
私がしていることを示すためにいくつかのコードを編集する
アプリケーションの起動が完了すると、アプリデリゲートからコントローラーが読み込まれます。
MyController *controller = [[MyController alloc] initWithNibName:@"MyController" bundle:nil];
[window setContentView:[controller view]];
そして、私のinitWithNibNameでは、今のところsuperを呼び出す以外に何もしません。