9

NSScrollViewを一番上にスクロールする正しい方法を知っている人はいますか?UIViewのscrollToTopメソッドに相当するものを探していました。

これは私がこれまでに持っているものですが、すべての状況で完全に正しいわけではありません

[self.contentView scrollToPoint:NSMakePoint(0, MAX(contentView.frameHeight, ((NSView*)self.documentView).frameHeight))];
4

4 に答える 4

16

Swift 5用に更新:

ドキュメントビューが反転している場合:

scrollView.documentView?.scroll(.zero)

そうでなければ:

if let documentView = scrollView.documentView {
        documentView.scroll(NSPoint(x: 0, y: documentView.bounds.size.height))
}
于 2017-03-26T11:31:27.750 に答える
9

ついにそれを理解した。チャームのように機能します!

if ([self hasVerticalScroller]) {
    self.verticalScroller.floatValue = 0;
}

NSPoint newOrigin = NSMakePoint(0, NSMaxY(((NSView*)self.documentView).frame) - self.boundsHeight);
[self.contentView scrollToPoint:newOrigin];
于 2012-08-16T03:16:10.830 に答える
5

これも問題なく動作します。NSScrollViewのdocumentViewのスクロールポイントを設定します

NSPoint pt = NSMakePoint(0.0, [[self.scrollView documentView]
                               bounds].size.height);
[self.scrollView.documentView scrollPoint:pt];
于 2015-08-07T11:14:53.433 に答える
1

Swift for Mac OSに変換する場合、以前のソリューションは一番下までスクロールします。Mac OSとiOSでは、y座標の方向が反転しています。

MacOS用のSwift3ソリューション:

scrollView.documentView?.scroll(NSPoint.zero)
于 2017-03-14T08:33:11.100 に答える