gpt4 book ai didi

objective-c - 如何停止使用自动布局调整 NSView subview 的大小

转载 作者:行者123 更新时间:2023-12-03 17:56:30 24 4
gpt4 key购买 nike

我在使用新的自动布局功能时遇到问题。我添加一个名为 tableView 的 NSView 作为workingBox 的 subview 。 workingBox 还包含一些使用 Interface Builder 添加的其他 subview

[self.window setFrame:frame display:YES animate:YES];
[workingBox addSubview:tableView];

我的问题是,如果任何其他 subview 接触 tableView 那么它们将在动画中调整大小。不靠近添加 tableView 的位置的 subview 保持正确的大小。我已经尝试在正在调整大小的 subview 上设置 NSViewNotSizing resizeMask 但它不起作用。唯一有效的方法是将 subview 向上移动(到错误的位置。

<小时/>

编辑:我在代码中添加了一个约束:

NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(divider);
NSArray *constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[divider(==1)]"
options:0
metrics:nil
views:viewsDictionary];
[workingBox addConstraints:constraints];

这使 NSView 保持在 1px 高度,但如果我将其锁定到顶部,它会阻止 super View 增长

最佳答案

我无法通过在代码中添加约束来完成这项工作。然而,在 Interface Builder 中,我可以看到所讨论的 NSView 有一个名为“底部对齐”的约束。我在检查器中将其优先级更改为 1,这样当窗口展开时,它就可以阻止 NSView 向下拉伸(stretch)。我认为我在上面的评论中提到的这个自动添加的约束一直是问题所在。

关于objective-c - 如何停止使用自动布局调整 NSView subview 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12577016/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com