我无法弄清楚如何实际使用NSScrollview
. 我将滚动视图对象拖到NSWindow
界面构建器中。然后我将一些NSButtons
拖到滚动视图上。我的问题是:
我实际上如何使它向下滚动,例如原始高度的 2 倍?
我无法弄清楚如何实际使用NSScrollview
. 我将滚动视图对象拖到NSWindow
界面构建器中。然后我将一些NSButtons
拖到滚动视图上。我的问题是:
我实际上如何使它向下滚动,例如原始高度的 2 倍?
当然,用户可以使用他们的 UI 自动滚动。我假设您想要做的是以编程方式滚动。
一点背景知识: AnNSScrollView
有一个documentView
,它是滚动视图显示一部分的底层视图,以及一个clipView
,它是屏幕上显示的视图。所以剪辑视图就像一个进入文档视图的窗口。要以编程方式滚动,您告诉文档视图在剪辑视图中滚动。
关于如何以编程方式滚动,您有两种选择:
- (void)scrollPoint:(NSPoint)aPoint
–– 这会滚动文档,因此给定点位于包含它的剪辑视图的原点。- (BOOL)scrollRectToVisible:(NSRect)aRect
–– 这会将文档滚动到最小距离,以便整个矩形可见。注意:这可能根本不需要滚动,在这种情况下它会返回 NO。因此,例如,这是 Apple 的Scroll View Programming Guide中有关如何滚动到文档视图底部的示例。假设你有一个IBOutlet
被调用的scrollView
连接到NSScrollView
你的 nib 文件中,你可以执行以下操作:
- (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];
}