我已经在Interface Builder中创建了一个包含两个子视图的NSSplitView。我希望左侧视图具有固定的宽度。我已经尝试为两个子视图定义自动调整大小规则,但左侧子视图仍会在窗口调整大小时改变宽度(分割视图填充窗口)。这可能是由于NSSplitView的“Autoresizes Subviews”属性引起的?(我无法取消选中它)。我该怎么办?
我已经在Interface Builder中创建了一个包含两个子视图的NSSplitView。我希望左侧视图具有固定的宽度。我已经尝试为两个子视图定义自动调整大小规则,但左侧子视图仍会在窗口调整大小时改变宽度(分割视图填充窗口)。这可能是由于NSSplitView的“Autoresizes Subviews”属性引起的?(我无法取消选中它)。我该怎么办?
我认为可以使用NSLayoutConstraint,我目前正在进行中 :)
编辑:
也许根据hayden的评论提供更多细节来解释我的答案。您可以通过代码或IB定义约束。在IB中选择左侧子视图,单击右下角的约束按钮,定义宽度约束。如果现在选择此新约束,则可以设置宽度并说它应该相等,并设置所需的大小。
第二种方法是在代码中创建一个NSLayoutConstraint对象,我是这样做的(这只是一个示例,不定义固定宽度)。
// define for the view: Constraint and AutoresizingMask option
NSView *view = self.view;
[view setTranslatesAutoresizingMaskIntoConstraints:NO]; // disable AutoresizingMask
NSDictionary *views = NSDictionaryOfVariableBindings(view);
[view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"[view(>=140,<=220)]" options:0 metrics:nil views:views]];