gpt4 book ai didi

macos - 如何根据自动布局contentView的最小尺寸自动调整NSWindow的大小

转载 作者:行者123 更新时间:2023-12-03 16:43:01 28 4
gpt4 key购买 nike

目前,我的应用程序的行为允许我调用我编写的这个额外函数,该函数可以将窗口大小调整为fittingSize。

- (void)fitToMinimumSize
{
NSRect frame = [self frame];
frame.size = [[self contentView] fittingSize];
int originalHeight = [self frame].size.height;
int diff = originalHeight - frame.size.height;
frame.origin.y += diff;
[self setFrame:frame display:YES];
}

但是我可以通过一些内置的自动布局代码自动执行此行为,以便窗口始终是其 contentView 的最小值的大小,而不是这个全能的 hack 吗?

编辑:我发现我可以检查 [[self contentView]fittingSize],但是如果它发生变化,我如何观察它,或者我应该自己触发它?

最佳答案

通常,如果您的布局完全且明确地由窗口内容 View 及其 subview 上设置的 NSConstraint 确定,那么一切都应该已经是“自动”的。

在您的情况下,我会尝试在尺寸足够小的内容 View 上安装高度和宽度约束(甚至可能为零),但优先级低于 subview 上设置的“内容压缩阻力优先级”。为了让一切正常工作,您可能必须考虑约束优先级和/或在内容 View 的子级上安装额外的约束。

只要您的 subview 被限制为抵抗崩溃到零,这应该可以在没有任何其他代码的情况下工作。我还认为在这种情况下,窗口不应该由用户调整大小。

关于macos - 如何根据自动布局contentView的最小尺寸自动调整NSWindow的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11972944/

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