12

NSScrollviewは常にウィンドウの下部から始まるため、アプリケーションで問題が発生します。どうすればトップから始めることができますか?

4

3 に答える 3

12

次のようなものを試してください。

NSPoint pointToScrollTo = NSMakePoint (  ,  );  // Any point you like.
[[scrollView contentView] scrollToPoint: pointToScrollTo];
[scrollView reflectScrolledClipView: [scrollView contentView]];
于 2011-04-29T18:57:39.467 に答える
4

解決策は、「スクロールビュープログラミングガイド」の「特定の場所へのスクロール」に記載されています。-[NSView scrollPoint:]クリップビューの原点を設定するために使用できます。

// A controller which has an outlet to the scroll view
- (void)awakeFromNib {

    // Not checking for flipped document view. See sample code.
    // New origin should be 
    // (documentView.frame.y + documentView.frame.height) - clipView.bounds.height
    NSPoint newOrigin = NSMakePoint(0, NSMaxY([[scrollView documentView] frame]) -
                                           [[scrollView contentView] bounds].size.height);
    [[scrollView documentView] scrollPoint:newOrigin];
}
于 2011-04-29T18:56:59.450 に答える
3

NSScrollView内にカスタムNSViewサブクラスがある場合は、オーバーライドしてみてくださいisFlipped

- (BOOL)isFlipped
{
    return YES;
}

これにより、ビューの原点が一番上に配置され、NSScrollViewが必要な処理を実行できるようになります。

ただし、ビュー内のすべての座標も反転します。

于 2011-07-03T12:25:37.580 に答える