我在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];
}
这是它的样子:
有谁知道为什么滚动条在内容视图下的内容?或者有一个例子?
我已经看过这个主题了:Overlay NSScroller over content和很多其他人没有找到答案。
感谢您的帮助!
答案 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)
Sparrow开发者在这里发布了他的代码: http://dinhviethoa.tumblr.com/post/6138273608/ios-style-scrollbars-for-nsscrollview