1

私が必要としているのはかなり基本的なことかもしれませんが、どのように進めるかははっきりとわかりません(以前にそれを行ったことがありますが、私の選択のどれもココアに優しいようには見えません)。

さて、2秒あるとしましょうNSView-次々に:

  • 左の方がメニューです。
  • 右側のものは、メニューの選択に応じて、NSView(おそらく別のXIBからのものですか?)を表示します。

GUIの概要

私の質問:

  • NSView右端のNSViewにさまざまなをロードするにはどうすればよいですか?
  • ウィンドウのサイズが変更されたときに、サブビュー(現在アクティブなもの)のサイズが適切に変更されていることを確認するにはどうすればよいですか?
4

2 に答える 2

2

rdelmarのソリューションは機能するはずですが、より簡単な別のアプローチは、NSTabViewを使用してコンテンツビュー間の切り替えを処理することです。NSTabViewのタブは、Interface Builderの設定ペインを使用するか、を呼び出すことで非表示にできます[self.tabView setTabViewType:NSNoTabsNoBorder]。おそらく左側にテーブルビューを使用します。ユーザーが行を選択すると、次のようになります。

-(void)tableViewSelectionDidChange:(NSNotification *)notification
{
    [self.tabView selectTabViewItemAtIndex:[self.menuTableView selectedRow]];
}

NSTabViewは、コンテンツビューとそのコンテンツビューの自動サイズ変更マスク(スプリングとストラット)を適切に設定している限り、コンテンツビューの適切なサイズ変更を処理できます。

于 2012-05-19T19:47:18.520 に答える
1

黄色のビューのように見えるカスタムビューをIBで作成し、ウィンドウのサイズ変更で両方向に拡張するようにサイズ変更動作を設定できるはずです。次に、(既存のビューを参照するか、新しいxibをロードするだけで)新しいビューを取得したら、それをカスタムビューのサブビューとして追加し、そのフレームをカスタムビューのフレームに設定します。ビューはデフォルトでサブビューのサイズを変更すると思うので、カスタムビューで正しくサイズ変更する必要があります。

于 2012-05-19T19:21:19.420 に答える