NSScrollView 内有NSClipView,NSClipView 内有 NSView。如图
image.png
我们的布局放在 NSView 中,将控件的约束都加上。会发现我们的 NSScrollView无法滚动,或者 NSWindow 无法调整高度。
其主要原因是 NSView 的约束没有设置好。但是我们发现默认 NSView 无法设置约束,如图所示:
image.png
此时我们需要设置 NSView 的一个属性:Layout
,如下图,红色方框圈起来的属性需要设置为Automatic
此时 NSView 就可以设置其位置了:
image.png
我这里设置的是上左右距离父视图边距为 0,底部不设置。
如果设置了底部,那么 NSView 跟 NSScrollView 的大小相同,那必然无法滚动。
我们不设置底部距离父视图的距离,转而设置 NSView 的高度,更具我们的需要设置合适的值,便可实现上下滚动,左右滚动同理。
总结一下:
我们做的主要工作就是设置 NSView 的大小,设置其顶部、左边的边距,如果需要上下滚动,则设置高度高于 NSScrollView,如果设置左右滚动,则这是宽度大于 NSScrollView。其中有个重要的属性Layout
需要设置为Automatic
网友评论