[英]How do I stop an NSView subview being resized with Auto Layout
我对新的自动版式功能有疑问。 我添加了一个名为tableView的NSView作为workingBox的子视图。 workingBox还包含随Interface Builder添加的其他一些子视图
[self.window setFrame:frame display:YES animate:YES];
[workingBox addSubview:tableView];
我的问题是,如果任何其他子视图触摸tableView,则它们将在动画中调整大小。 不靠近要添加tableView的位置的子视图将保持正确的大小。 我已经尝试在要调整大小的子视图上设置NSViewNotSizable resizeMask,但是它不起作用。 唯一有效的方法是将子视图向上移动(到错误的位置。
编辑:我在代码中添加了一个约束:
NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(divider);
NSArray *constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[divider(==1)]"
options:0
metrics:nil
views:viewsDictionary];
[workingBox addConstraints:constraints];
这样可以将NSView保持在1px的高度,但是如果我将其锁定在顶部,则会阻止超级视图的增长
我无法通过在代码中添加约束来完成这项工作。 但是,在Interface Builder中,我可以看到存在问题的NSView约束被称为“底部对齐”。 我在检查器中将此优先级更改为1,并在窗口扩展时阻止了NSView拉伸。 我认为我在上面的评论中提到的这种自动添加的约束一直都是问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.