gpt4 book ai didi

objective-c - Mac 应用程序的窗口大小

转载 作者:行者123 更新时间:2023-12-03 16:25:48 32 4
gpt4 key购买 nike

我是使用 Cocoa 进行 Mac 应用程序开发的新手。我对窗口/ View 大小应该是多少感到困惑。就像在 iOS 应用程序中一样,我们有适合小型 iPod 和最新 iPod 的适当尺寸。但是如何在 Cocoa App 中设置大小。

此外,我想将部署目标设置为 OS X 10.6,它不支持 AutoLayout。

那么调整窗口大小以适合每个桌面的好方法是什么?

最佳答案

在 OS X 下调整显示器窗口大小时需要考虑一些事项。

首先是显示区域的大小。你可以使用

NSRect frame = [[NSScreen mainScreen] frame];

但这有点简单化,因为用户可能会显示 Dock,并且几乎总是会显示菜单栏。因此,确定桌面最大显示区域的更好方法是:

NSRect frame = [[NSScreen mainScreen] visibleFrame];

尊重菜单栏和 Dock。

正如其他人指出的那样,这个矩形很少是窗口的最理想尺寸。还要理解,这个矩形只是一个起点,因为您的用户可能有多个显示器,并且它们构成了窗口可能显示的总区域。但是当显示新窗口时,您总是从这个矩形开始。请参阅 NSScreen 的文档来确定这一点;以上方法将为您的理解提供一个跳板。

我不知道你打算如何创建和使用你的窗口,但是对于除了最简单的应用程序之外的所有应用程序,你可能会使用 NSWindowController 的子类。如果是这样,它将成为您窗口的代表。因此,您需要在其中实现一个重要的窗口委托(delegate)方法,它就是:

- (NSRect)windowWillUseStandardFrame:(NSWindow *)window defaultFrame:(NSRect)newFrame

您可以在此处确定窗口框架的“标准”位置和大小。当窗口“缩小”到所谓的“标准状态”(相对于用户设置的大小,即“用户状态”)时,窗口会调用它。换句话说,它是最适合窗口内容的矩形,但请记住描述可以显示它的“安全”区域的矩形。不幸的是,我无法确切地告诉您如何编码,因为它完全取决于您在窗口中显示的内容。

你可以看到,“正确”的定义与 iOS 中的定义完全不同。祝您工作顺利。

关于objective-c - Mac 应用程序的窗口大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21851212/

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