3

実際の使い方がわかりませんNSScrollview。スクロールビューオブジェクトをNSWindowInterfaceBuilderのにドラッグしました。NSButtons次に、いくつかをスクロールビューにドラッグしました。私の質問は:

たとえば、元の高さの2倍など、実際に下にスクロールするにはどうすればよいですか?

4

1 に答える 1

6

もちろん、ユーザーは UI を使用して自動的にスクロールできます。あなたがしたいことは、プログラムでスクロールすることだと思います。

ちょっとした背景: にNSScrollViewdocumentView、スクロール ビューが一部を表示する基礎となるビューである とclipView、画面に表示されるビューである があります。したがって、クリップ ビューは、ドキュメント ビューへのウィンドウのようなものです。プログラムでスクロールするには、ドキュメント ビューにクリップ ビュー内でスクロールするように指示します。

プログラムでスクロールする方法には、次の 2 つのオプションがあります。

  • - (void)scrollPoint:(NSPoint)aPoint–– これはドキュメントをスクロールして、指定されたポイントがそれを囲むクリップ ビューの原点に来るようにします。
  • - (BOOL)scrollRectToVisible:(NSRect)aRect–– これにより、ドキュメントが最小距離だけスクロールされるため、長方形全体が表示されます。注: これはスクロールする必要がない場合があり、その場合は NO が返されます。

たとえば、ドキュメント ビューの一番下までスクロールする方法については、Apple のScroll View Programming Guideの例を次に示します。nib ファイルで に接続されたIBOutlet呼び出しがあると仮定すると、次のことができます。scrollViewNSScrollView

- (void)scrollToBottom
{
    NSPoint newScrollOrigin;

    if ([[scrollview documentView] isFlipped]) {
        newScrollOrigin = NSMakePoint(0.0,NSMaxY([[scrollview documentView] frame])
                                       -NSHeight([[scrollview contentView] bounds]));
    } else {
        newScrollOrigin = NSMakePoint(0.0,0.0);
    }
    [[scrollview documentView] scrollPoint:newScrollOrigin];
}
于 2012-07-23T13:46:08.083 に答える