繁体   English   中英

如何停止使用自动版式调整NSView子视图的大小

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM