2013-10-07 16 views
1

我遇到了一个奇怪的问题(Bug?):假设我有一个WebView,它将垂直滚动。在层叠视图中缩小NSScrollView的NSScroller

我现在想缩小一下mainFrame的垂直滚动条,使其高度比NSScrollView本身小。

enter image description here

这样做的原因是,我想固定web视图上述两个视图(顶部和底部上的边缘)。

我通过改变verticalScroller的框架(改变原点和高度)在frameLoad委托方法中轻松实现了这一点。

它的工作原理,但:

然而,一旦我设置web视图和它的父的NSView是层支持,它停止工作,滚轮本身重置为默认的位置和高度。

现在我不知道这是否是一个错误。 有没有其他方法可以尝试'插入'滚动条?

回答

2

你试过继承NSScroller,将其设置为垂直滚动条你NSScrollView和压倒一切的

-(void) setFrameOrigin:(NSPoint)origin; 
-(void) setFrameSize:(NSSize)size; 

我想制作一个NSView层支持的原因框架尺寸被再次设定(NSScrollView似乎采取了不少这个控制,因为当你创建一个自定义滚动的,没有“干净”的方式来设置NSScroller作为水平或垂直以外调用 - initWithFrame:与

  1. 高度>宽度为auto matically设置为垂直
  2. 宽度>高度自动设置为水平

我的另一个建议是,如果你想NSScroller不完全反映其母公司NSScrollView的规模将你将NSView作为webview的内容视图更好。 NSView有3个子视图。顶部和底部的两个视图固定为,中间还有一个NSScrollView。在这种情况下,没有必要的自定义NSScroller。

+0

谢谢,lead_the_zeppelin,我结束了使用二次NSScroller,即观察到滚动值的变化,并且还设置了值:[RMSecondaryScroller](https://github.com/raffael/RMSecondaryScroller)。不过,我会测试你的第一种方法是否更可靠! – Raffael