我遇到了一个奇怪的问题(Bug?):说我有WebView
,它会垂直滚动。
我现在想缩小mainFrame
的垂直卷轴,使其高度小于NSScrollView
本身。
原因是我想在网页视图上方固定两个视图(在顶部和底部边缘)。
我通过改变verticalScroller的框架(改变原点和高度)轻松地在frameLoad委托方法中做到了这一点。
有效,但是:
然而,一旦我将webView和它的父NSView设置为图层支持,它就会停止工作,滚动条会将自身重置为默认位置和高度。
现在我不知道这是不是一个bug。 有没有其他方法可以尝试“插入”卷轴?
答案 0 :(得分:2)
您是否尝试过子类化NSScroller,将其设置为NSScrollView的垂直滚动条并覆盖
-(void) setFrameOrigin:(NSPoint)origin;
-(void) setFrameSize:(NSSize)size;
我假设使NSView层支持导致再次设置frameSize(NSScrollView似乎对此有相当多的控制权,因为当你创建一个自定义滚动条时,没有" clean"方式到将NSScroller设置为水平或垂直,而不是调用 - initWithFrame :with
我的另一个建议是,如果您希望NSScroller不能完全反映其父NSScrollView的大小,那么最好将NSView作为webview的内容视图。 NSView有3个子视图。顶部和底部的两个视图固定,中间有一个NSScrollView。在这种情况下,不需要自定义NSScroller。