【发布时间】:2015-03-20 15:56:49
【问题描述】:
我正在为 OS X 开发一个应用程序,它在退出时会显示一个小窗口(使用自动布局)。窗口大小约为 550 x 290 像素,并且是固定的。
但我正面临一种对我来说似乎很奇怪的行为:
- 在 OS X 10.7 上启动应用程序:小窗口的大小大约是应有大小的三倍(宽度和高度)
- 在 OS X 10.8 上启动应用程序:窗口的宽度适合,但它的高度仍然是应有的两倍
- 在 OS X 10.9 上启动应用程序:窗口具有我设计的大小
- 在 OS X 10.0 上启动应用程序:与 10.9 相同(正确)的行为
我已将所有约束重新设置为正确设置(Xcode 未显示布局问题)。有人能告诉我那里可能发生什么吗?
我绝对确定视图中没有其他(冲突或修改)约束。
更新
您可以在下面找到包含窗口所有约束的图像。窗口本身的约束(最小和最大大小)已设置为当前(预期)大小。
左侧的图像已固定到底部、左侧和顶部,其缩放行为已设置为proportionally down。所以图片不应该是问题的根源。
【问题讨论】:
-
您必须展示实际的约束条件。窗户里有什么?里面是否有任何东西比你预期的要大(例如放大的图像)?
-
如果您使用尺寸检查器将窗口的最大尺寸限制为预期尺寸会怎样?
-
@JWWalker 最小和最大尺寸的约束已设置为当前尺寸。
-
@KenThomases 我已经更新了我的问题,并在其中放入了一张图片以分别显示窗口及其视图的约束。
-
图像视图可能确实是问题所在。将其按比例缩小并不意味着它一定会。如果其抗压缩优先级大于(或等于)500 (
NSLayoutPriorityWindowSizeStayPut),则自动布局将(可能)更愿意更改窗口大小而不是压缩/缩小图像。图像视图实际上显示的是大图像吗?
标签: macos cocoa autolayout