我在使用新的自动布局功能时遇到问题。我添加了一个名为 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 高度,但如果我将其锁定在顶部,它会阻止超级视图增长