收缩NSScrollView的NSScroller在层支持的视图(Shrink NSScroller

2019-09-28 12:46发布

我遇到一个奇怪的问题(错误):说我有一个WebView ,将垂直滚动。

我现在要收缩的mainFrame的垂直卷轴一点点,所以它的高度比小NSScrollView本身。

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

我这样做,很容易在frameLoad委托方法通过改变verticalScroller的框架(改变起源和高度)。

它的工作原理,但是:

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

现在,我不知道这是一个错误或没有。 是否有任何其他方式,我可以尝试“插入”滚动条?

Answer 1:

你有没有试着子类NSScroller,将其设置为您NSScrollView和压倒一切的垂直滚动条

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

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

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

我的另一个建议是,如果你想NSScroller不完全反映其母公司NSScrollView的大小,你会更好具有的NSView作为web视图的内容视图。 而有一个NSView子视图3。 在顶部和底部针扎 ,和一个NSScrollView在中间的两个观点。 没有必要在这种情况下定制NSScroller。



文章来源: Shrink NSScroller of NSScrollView in layer-backed view