9

NSScrollViewに埋め込まれているビューベースのNSTableViewがあります。xピクセルの高さのカスタムセルがあります。NSScrollViewは、サブビューであるパネルと同じサイズです。テーブル内の行数に応じて、NSTableView全体のサイズを変更したいと思います。

サイズ変更以外はすべて機能しています。IBでスクロールビューのサイズを手動で変更すると、望ましい効果があるようですが、NSSrollViewには、ビューのサイズを変更するためのクラスメソッドがないようです(NSViewにsetFrameがあるように)。scollview、tableview、両方、または他の何かのサイズを変更する必要がありますか?NSScrollViewには、欠落しているsetFrameメソッドなどがありますか?

ありがとう。

4

3 に答える 3

4

プログラムで実行する前に、アウトラインビューの自動サイズ変更マスクがnibファイルで適切に設定されていることを確認してください。アウトラインビュー(およびそのスクロールビュー)を、内部のウィンドウと常に同じサイズのままにしておきたいようです。

デフォルトでは、ウィンドウに配置するNSScrollView/NSOutlineViewコンボの自動サイズ変更マスクは次のようになります。

ここに画像の説明を入力してください

つまり、ウィンドウのサイズを変更しても、常に現在と同じサイズのままになるように設定されています。

次の画像のように自動サイズ変更マスクを変更します。

ここに画像の説明を入力してください

これを行うには、赤い点線がある場所で白い自動サイズ設定ボックスをクリックして、赤い実線に切り替えます。このように構成すると、スクロールビュー(およびテーブルビュー)は常に(自動的に)サイズ変更され、ウィンドウと同じサイズになります。

Lionの新しい「自動レイアウト」機能を使用してこれを実現する方法もあるかもしれませんが、それについてはもっと経験のある人に任せなければなりません。

于 2012-05-01T08:26:45.617 に答える
1

本当にこれを行う必要がある場合(たとえば、すべての行をスクロールビューに収めてスクロールの必要性を軽減する場合)、スクロールビューはウィンドウ/ビューの一部にすぎません。

[[myTableView enclosingScrollView] setFrame:newFrameRect];
于 2013-01-06T22:49:09.970 に答える
0
scrollview.frame = CGRrectMake(x, y, w, h);
于 2012-05-01T06:56:59.977 に答える