6

我正在制作一个在 OS X 上使用的应用程序,我注意到 Interface Builder 中的新约束功能(当然,现在内置到 Xcode 中)是多么有用。事实上,它是如此有用和动态,以至于我在质疑是否应该设置最小窗口大小,或者仅仅依靠我的窗口的约束来设置最小值和最大值。

我有一种感觉,OS X 会考虑最小和最大窗口大小,而不是以某种方式限制窗口大小,并且为此设置最小值和最大值可能很有用,但我也觉得这可能很好样式依赖于约束动态设置最小和最大窗口高度,因为它们的动态行为和所有。例如,如果我决定更改带有约束的控件的最小宽度,我不必担心还会更改最小窗口的最小宽度。

依赖约束来设置最小和最大窗口大小的好处的另一个更重要的例子是,如果用户更改文本大小等内容,我的应用程序中受影响的控件能够动态更改其大小约束,但静态设置最小和最大窗口大小会破坏这种动态行为。

再一次,所有这些好处也应该考虑到这样一个事实,即 OS X 可能会以某种方式考虑最小和最大窗口大小,因此设置最小值和最大值可能很有用;我只是不确定OS X 是否将它们考虑在内,如果它们考虑了,它如何使用它们。

我查看了 Apple 的文档,找不到任何能提供令人满意的答案的东西。

4

1 回答 1

2

在这种情况下,最好的办法就是自己尝试一下。用一个窗口和几个控件创建一个新应用程序只用了不到两分钟。如果您只想使用可调整大小的窗口,则根本不需要添加任何代码:

窗口 1

这个窗口没有最小尺寸也没有约束,问题马上就很明显了。您可以调整窗口大小,使其看起来像这样:

窗口 2

在按钮之间添加一些约束显示了约束提供的承诺。现在窗口在最小尺寸下看起来像这样:

窗口 3

对标签的更多限制最终给出了预期的结果:

窗口 4

这很棒,但要到达那里需要一些工作。我没有添加一整套约束——两个右手按钮之间的垂直约束是多余的,因为左边的按钮之间已经有一个。对于具有许多控件的窗口,设置足够的约束来覆盖所有视图可能是:a) 非常有用且值得,或者 b) 很麻烦且几乎没有额外价值。这取决于你的情况。一个更简单的方案是将可能重叠的控件的高度(两个按钮和标签)和它们之间的所需空间相加,然后将其设置为窗口的最小高度。

我可以看到任何一种策略都是有用的,具体取决于窗口内容。事实上,我认为它们根本不是两个独立的策略......设置最小窗口尺寸实际上只是您要添加的另一种约束。例如,可能存在一个尺寸,低于该尺寸您的窗口看起来很傻或不是很有用,因此您可以将最小窗口尺寸设置为这些尺寸。同时,您可能希望在按钮之间设置约束以防止本地化版本中的控件重叠(例如,德语名称往往会变得很长)。

于 2012-05-24T01:14:55.677 回答