约束单窗口MacOS Objective-C的纵横比

Posted

技术标签:

【中文标题】约束单窗口MacOS Objective-C的纵横比【英文标题】:Constrain Aspect Ratio of Single Window MacOS Objective-C 【发布时间】:2020-05-08 22:13:44 【问题描述】:

假设我有一个适用于 MacOS 的 Obj-C Xcode 项目。我有一个包含两个窗口的 xib。一个是启动时的主窗口。第二个窗口是从主窗口上的按钮打开的。除此之外,只有 appdelegate .h 和 .m。两个窗口都在一个 xib 中。

我想限制第二个窗口的纵横比,而不是主窗口。

我发现我可以使用这样的东西:

[_window setAspectRatio:NSMakeSize(16, 9)];

添加到 appdelegate.m 下的 applicationDidFinishLaunching 似乎限制了主窗口,而不是第二个。

知道如何允许第二个 xib 窗口调整大小,但限制为 16:9 的纵横比 - 当两个窗口都在一个 xib 文件中时,不限制主窗口?

【问题讨论】:

_window 在哪里以及如何声明和分配? 你会显示打开第二个窗口的按钮代码吗? 【参考方案1】:

您的应用委托与“视频窗口”没有任何连接,window 属性已连接到您的主窗口。例如,您可以添加另一个插座:

然后你可以设置视频窗口的纵横比而不是主窗口的纵横比。

[_videoWindow setAspectRatio:NSMakeSize(16, 9)];

【讨论】:

谢谢。添加第二个插座,然后设置纵横比可以在打开的窗口上强制使用纵横比。

以上是关于约束单窗口MacOS Objective-C的纵横比的主要内容,如果未能解决你的问题,请参考以下文章

使用NSView.layoutSubtreeIfNeeded()动画自动布局约束不适用于macOS High Sierra

Swift还是Objective-C,这是个问题

Objective-C中的开源Macos停靠动画[关闭]

OS X (macOS) 和低级 C(Objective-C 替代方案)中的 Applescript

Macos:使用objective-c确定用户帐户是不是是Active Directory用户与本地用户

优化算法基于matlab cubic混沌初始化结合纵横策略正弦余弦算子的黑猩猩优化算法求解单目标优化问题含Matlab源码 2065期