3

我无法弄清楚如何实际使用NSScrollview. 我将滚动视图对象拖到NSWindow界面构建器中。然后我将一些NSButtons拖到滚动视图上。我的问题是:

我实际上如何使它向下滚动,例如原始高度的 2 倍?

4

1 回答 1

6

当然,用户可以使用他们的 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];
}
于 2012-07-23T13:46:08.083 回答