我如何设置Scrollview的默认位置?

时间:2011-04-29 15:31:11

标签: objective-c cocoa xcode nsview nsscrollview

我的应用程序中出现了NSScrollview的问题,因为它总是从窗口的底部开始。怎么能让它从顶部开始?

3 个答案:

答案 0 :(得分:12)

尝试这样的事情:

NSPoint pointToScrollTo = NSMakePoint (  ,  );  // Any point you like.
[[scrollView contentView] scrollToPoint: pointToScrollTo];
[scrollView reflectScrolledClipView: [scrollView contentView]];

答案 1 :(得分:4)

Scroll View编程指南Scrolling to a Specific Location中给出了一个解决方案。您可以使用-[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];
}

答案 2 :(得分:3)

如果您在NSScrollView中有自定义NSView子类,请尝试覆盖isFlipped

- (BOOL)isFlipped
{
    return YES;
}

这会将视图的原点放在顶部,这样可以使NSScrollView执行您想要的操作。

但是,它也会翻转视图中所有内容的坐标。