有谁知道将 NSScrollView 滚动到顶部的正确方法?我正在寻找与 UIView 的 scrollToTop 方法等效的方法。
这是我到目前为止所拥有的,但在所有情况下都不太正确
[self.contentView scrollToPoint:NSMakePoint(0, MAX(contentView.frameHeight, ((NSView*)self.documentView).frameHeight))];
有谁知道将 NSScrollView 滚动到顶部的正确方法?我正在寻找与 UIView 的 scrollToTop 方法等效的方法。
这是我到目前为止所拥有的,但在所有情况下都不太正确
[self.contentView scrollToPoint:NSMakePoint(0, MAX(contentView.frameHeight, ((NSView*)self.documentView).frameHeight))];
为Swift 5更新:
如果您的文档视图被翻转:
scrollView.documentView?.scroll(.zero)
否则:
if let documentView = scrollView.documentView {
documentView.scroll(NSPoint(x: 0, y: documentView.bounds.size.height))
}
终于想通了。奇迹般有效!
if ([self hasVerticalScroller]) {
self.verticalScroller.floatValue = 0;
}
NSPoint newOrigin = NSMakePoint(0, NSMaxY(((NSView*)self.documentView).frame) - self.boundsHeight);
[self.contentView scrollToPoint:newOrigin];
这也很好用。设置 NSScrollView 的 documentView 的滚动点
NSPoint pt = NSMakePoint(0.0, [[self.scrollView documentView]
bounds].size.height);
[self.scrollView.documentView scrollPoint:pt];
转换为 Mac OS 的 Swift 时,之前的解决方案会滚动到底部。y 坐标方向在 Mac OS 和 iOS 上翻转。
Mac OS 的 Swift 3 解决方案:
scrollView.documentView?.scroll(NSPoint.zero)