我创建了一个分割视图控制器,它显示两个视图,如下所示:
当我编译它时,它给了我这个结果:
不幸的是,第一个视图不可见,我必须从窗口的左侧拖动才能看到两个视图:
首先,为什么拆分视图的行为如此?为什么它从一开始就没有合适的尺寸?
如果我将此行添加到 SplitViewController 的viewDidLoad()函数中:
splitView.adjustSubviews()
然后出现两个视图,大小相同,但我不明白 adjustSubviews()函数究竟做了什么,我无法控制其中任何一个的位置。
如何以编程方式修复它?如何调整每个视图的大小?有没有办法在界面构建器中调整它?
谢谢。
编辑:这个问题现在有50分的赏金
答案 0 :(得分:7)
由于NSSplitViewController是基于自动布局的,因此如果您希望视图具有固定或动态行为,则可以使用自动布局。
对于固定宽度,您可以执行的操作是在2个视图中添加自定义视图,并在所有边缘和固定宽度上使用0约束。例如:
然后窗口将扩展如下:
答案 1 :(得分:1)
您应该能够使用(在分割视图中假设2个视图)在拆分视图中设置分隔符的位置:
self.splitView.setPosition(200.0, ofDividerAtIndex: 0)
这会将第一个分隔符设置在位置200.0
答案 2 :(得分:0)
我们需要直接设置NSSplitView
个子视图的大小。
通过splitViewItems
设置一些似乎没有效果。
// NSSplitViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSView *view1 = self.splitView.subviews[0];
NSRect rect = view1.frame;
rect.size.width = 150;
view1.frame = rect;
NSView *view2 = self.splitView.subviews[1];
rect = view2.frame;
rect.size.width = 300;
view2.frame = rect;
}