iTunesのスタイルでソースリストを使用するCocoaデスクトップアプリケーションを開発しています。ソースリストの要素が異なると、メインコンテンツ領域に異なるビューが表示されます。
コンテンツ領域は完全に(垂直)で埋められていNSSplitView
ます。左側はNSOutlineView
ソースリストです。ユーザーが左側のアイテムを選択すると、関連するビューがスプリッターの右側に表示されます。
すべてを1つのNIBファイルに入れNSTabView
、スプリッターの右側にフチなしを配置することで、十分に機能させることができます。ビューを切り替えるには、選択したタブを変更するだけです。ただし、すべてのビューを1つのNIBに入れるのは悪い習慣なので、各サブビューを独自のNIBファイルに移動しようとしています。
私はこのプロセスのほとんどについてかなり良い考えを持っています—これらのビュー(、、など)ごとにサブクラスを作成し、新しいNSViewController
各NIBのファイルの所有者を関連するコントローラークラスに設定し、それぞれに接続を設定しますNIB、およびバインディングを作り直しました。画面に表示されているサブビューを実際に変更する方法がわかりません。EntityDetailViewController
GroupDetailViewController
view
NSView
右側のデフォルトのジェネリックを使用してaddSubview:
メッセージを送信してみました。私は最初のサブビューとしてそれに接続して呼び出してみました
NSView *newSubview = /* get subview from the new subview controller */
[[subview superview] replaceSubview:subview with:newSubview];
[self setSubview:newSubview];
しかし、すべてがスペースを空白のままにします。別のNIBからロードされたサブビューを表示するにはどうすればよいですか?