gpt4 book ai didi

objective-c - 在桌面项目上使用 autosizing 或 autoresizingMask 不好吗?

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

作为一名有点熟练的 iOS 开发人员,我刚刚开始在 Cocoa 中开发桌面 OSX 项目,但遇到了我无法理解的问题。所以这个问题是针对 OSX 开发人员的。

我不太喜欢 Interface Builder,所以我倾向于用代码编写我的 View 。我编写 View 布局代码的最重要的方法是 View Controller 的 loadView 方法,并且至少在 iOS 上我对所有内容都使用 autoresizingMask 。尝试一下小 View 、大 View 、旋转的横向和纵向 View ,如果一切顺利,我会继续列表中的下一个项目。现在在桌面上,autoresizingMask 的工作方式(或只是看起来)有点不同。首先,这些属性有不同的名称,但它们的行为也看起来很奇怪或出乎意料。

当我遇到下面的问题时,我认为一定是我的代码错误,所以在尝试了足够长的时间后,我用 Interface Builder 重新创建了它,只是为了确认,你猜怎么着:我得到了完全相同的结果。使用四个垂直堆叠的 subview 来查看 View 。将中间两个设置为灵活高度,将外部设置为固定高度。当您运行它时,将其缩小并再次放大,我在调整大小之前和之后得到两个完全不同的布局。看图片:

enter image description here

现在我可以从运行循环之间的数学角度理解为什么会发生这种情况,但从“自动调整大小”或“自动调整大小”功能的角度来看,这绝对没有意义。

在我尝试在这里写下所有调整大小主题之母之前,我可以问你这些问题吗?如果您觉得调整大小主题对帖子有所帮助,请随意详细说明。

  1. 我不想在桌面项目上使用 Interface Builder,我是傻瓜吗?
  2. 我对 autoresizingMask 的依赖是否应该少于对 iOS 项目的依赖?
  3. 有哪些不错的替代方案可以确保您的布局在没有 Interface Builder 的情况下达到标准?

干杯!

最佳答案

  1. 是的,我认为。 :)

  2. 当它满足您的需要时,您应该依赖它。如果不够,请覆盖 resizeSubviewsWithOldSize: 和/或 resizeWithOldSuperviewSize: (或参见下文)。

  3. ???

如果您可以以 10.7 为目标,请查看新的基于约束的布局系统。查看来自 WWDC 2011Cocoa Autolayout 视频.

您还可以将 NSWindow 上的 minSize 设置为足够大的值以防止奇点。

关于objective-c - 在桌面项目上使用 autosizing 或 autoresizingMask 不好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8964849/

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