在我目前正在处理的一个程序中,我想锁定主窗口的纵横比,以确保一些视觉元素保持成比例。
我已经设法通过在 AppDelegate 类中执行以下操作来完成这项工作:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
[window setAspectRatio:NSMakeSize(1.48, 1.0)];
}
每当用户拖动窗口时,纵横比都会像我预期的那样被锁定,但是有一个问题。我在 IB 中指定了 592x400 的窗口大小,它确实符合纵横比,但是当我第一次尝试在应用程序运行时调整窗口大小时,窗口会快速捕捉到新的比例。我猜这 setAspectRatio: 可能会进入窗口顶部的栏,因此会打乱计算。
有没有人知道这个问题的一个体面的解决方法,或者任何替代方法?
此外,是否有另一种以编程方式调整窗口大小的方法,以尊重 setAspectRatio 设置的纵横比?
之前,在以编程方式更改大小时,我一直在使用:
[window setContentSize:NSMakeSize(592, 400)];
正如预期的那样,我已经对其进行了测试以确认它忽略了指定的纵横比!
谢谢!