3

CocoaアプリケーションでNSScrollViewを使用していますが、水平スクローラーの長さをカスタマイズしたいと思います。スクロールビューのコンテンツは、左側の固定幅領域と右側の動的幅領域の2つの主要な領域に分割されます。左側の領域は垂直方向にのみスクロールします。ユーザーが左右にスクロールしても、ビューの左側に固定されたままになります。スクロールされているビューのスクリーンショットは次のとおりです。

http://jarodlong.com/dropbox/nsscroller_issue.png

水平スクローラーが左側の固定領域と重ならないようにします。右側の領域に限定する必要があります。

NSScrollViewをサブクラス化せずにこれを行う方法はありますか?サブクラス化する必要がないことを本当に望んでいますが、必要な場合は、サブクラス化するときに何を調べる必要がありますか?

横スクロールのフレームを設定してみましたが、NSScrollViewは常にスクローラーのサイズをエリア全体に合わせて調整していると思います。

4

2 に答える 2

4

この状況では、2つの別々のスクロールビューを使用すると思います。

わかりました。友人に確認しましたが、Lionでは、GLサーフェスに描画されていますがNSScroller、まだインスタンスがあります。NSScrollviewテストされていませんが、次のような方法でうまくいくはずです。

@implementation MyScrollView : NSScrollView

- (void) tile
{
[super tile];
id scroller = [self horizontalScroller];
NSRect scrollerRect = [scroller frame];
   // adjust scrollerRect as you want to here
[scroller setFrame:scrollerRect];
}
于 2011-08-16T10:10:08.567 に答える
1

ウィンドウに2つのNSScrollViewを追加します。左側は垂直スクロールのみをサポートし、右側は水平スクロールのみをサポートします。

于 2011-08-16T10:59:51.760 に答える