NSScrollView中的自定义NSSroller

时间:2011-03-07 08:41:28

标签: cocoa nsscrollview ikimagebrowserview nsscroller

我在NSScrollView中嵌入了一个IKImageBrowserView。

我正在尝试实现滚动条,就像我们在Lion或Sparrow和Reeder等其他应用中看到的那样。我希望我的滚动条能够覆盖内容。

所以我唯一的问题就是内容越过滚动条而不是在下面。

我知道我可以使用NSScrollView的-tile方法来安排不同的部分,但我不知道如何将它用于我的目的。

编辑:这是我-tile中的代码:

- (void)tile
{
    [super tile];

    // We move the scroll to be just below the scrollView
    NSScroller *verticalScroller = [self verticalScroller];
    NSRect verticalScrollerFrame = [verticalScroller frame];
    verticalScrollerFrame.origin.x -= 117.0;
    [verticalScroller setFrame:verticalScrollerFrame];

    // We expand the scrollview to embrace the whole window
    NSRect scrollViewFrame = [self frame];
    scrollViewFrame.size.width = 655.0;
    [self setFrame:scrollViewFrame];

}

这是它的样子:

preview

有谁知道为什么滚动条在内容视图下的内容?或者有一个例子?

我已经看过这个主题了:Overlay NSScroller over content和很多其他人没有找到答案。

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

好的我觉得我发现了问题。

NSRect scrollViewFrame = [self frame];
scrollViewFrame.size.width = 655.0;
[self setFrame:scrollViewFrame];

在此块中,我使用[self frame]来获取NSClipView contentFrame而不是[[self contentView] frame]

应该是这样的。

NSRect scrollViewFrame = [[self contentView] frame];
scrollViewFrame.size.width = 655.0;
[[self contentView] setFrame:scrollViewFrame];

我还没试过,但我很确定这就是问题所在。

答案 1 :(得分:1)