7

固定行数が非常にNSTableView少ないがあります。

NSTableViewInterface Builderでを作成すると、NSTableViewはに含まれますNSScrollView。スクロールビューのコンテキスト外にテーブルを存在させる方法が見つかりませんでした。テーブルの行数が少ないので、スクロールしたくありません。行数に基づいてテーブルのサイズを変更し、最後の行の下部のすぐ下に下の境界線を配置します。

スクロールビューの高さを次のように設定すると、垂直スクロールバーが表示されます。

height = (numRows * (rowHeight + intercellSpacingHeight))

その高さに1ピクセルを追加すると、スクロールバーは表示されませんが、最後の行の下部と下部の境界線の間に余分なピクセルが表示されます。

InterfaceBuilderの[ ShowVertical Scroller]チェックボックスをオフにすると、スクロールバーは表示されませんが、最後の行を選択するとテーブルが1ピクセル下にスクロールします。

テーブルをまったくスクロールせず、最後の行のすぐ下に下の境界線を表示する方法はありますか?

ありがとう。

4

2 に答える 2

3

囲んでいるスクロールビューから (コードまたは IB で) NSTableView をいつでも抽出できます... テーブルを任意のコンテナーに埋め込むことができますが、コンテナー内のテーブルのサイズを維持する (および/または grow/やりたいことに応じて、それに応じてコンテナを縮小します)。

于 2010-03-04T02:34:49.387 に答える
1

あなたはawakeFromNib(未テスト)のようなものを書くことができます:

NSScrollView *scrollView = [tableView superview];
NSView *container = [scrollView superview];
[[tableView retain] autorelease];
[tableView removeFromSuperview];
[scrollView removeFromSuperview];
[container addSubview:tableView];
[container setFrameSize:[tableView frame].size];

または、Interface Builderで、リストビューモード([メインメニュー]->[表示]->[リストとして])に変更して、スクロールビューからテーブルビューを抽出できます。次に、テーブルビューが表示されるまで、ビュー階層を展開します。これをスクロールビューからドラッグすることはできますが、別のビューにドラッグすることはできません。これをアウトレットに接続して、プログラムでビューに追加するだけです。

行数が変更された場合でも、コンテナの高さを更新する必要があります。

于 2010-03-04T07:04:04.220 に答える