0

最初,我想问如何以编程方式使用可可创建用户界面,即不使用界面构建器。但似乎其他人已经问过这个问题并且答案对我没有帮助。

所以我会问一个不同的问题,我希望能间接帮助我回答上一个问题。这里是:

(QUESTION_START)

如何创建一个功能与Java中的BoxLayout 类等效的 Objective C 类?(只需单击链接,该页面上的图像说明了您需要了解的有关 BoxLayout 的所有信息。)

(QUESTION_END)

任何正确方向的帮助将不胜感激!

有一些与问题相关的子任务,例如

“我如何询问用户界面元素(例如按钮)它想要多大”(在它被绘制到屏幕之前)。要在屏幕上绘制它,您必须已经知道它的大小,不是吗?显然,界面构建器应用程序已经找到了一种方法来做到这一点。

我知道许多 Cocoa 开发人员甚至认为尝试我想做的事情是一个愚蠢的想法。让我告诉你:我知道这种观点背后的原因。现在,在没有界面构建器的情况下布局控件很糟糕,因为在可可中没有任何东西可以接近布局管理器。但是,如果您认为我的问题很愚蠢,请不要回答。整个互联网都在解释为什么你永远不想用 cocoa 中的代码创建 UI。

谢谢!

4

1 回答 1

0

回答您的第一个问题有点困难且相当复杂,因此我将首先深入探讨您的子问题:

我如何询问用户界面元素(例如按钮)它想要多大?

当你创建一个 UI 元素时,你通过它的构造函数告诉它应该有多大(以及它应该在哪里) ;initWithFrame:或者您可以稍后通过其setFrame:方法设置其框架。然后它将自己吸引到那个空间中。frame您可以通过其方法获取元素的框架。

考虑到这一点BoxLayout,假设一个类是某种控制器,您可以在其中添加 UI 元素,然后BoxLayout控制器会将它们排列在某种网格(或其他任何东西)中NSView

我知道您不是在寻找质疑动机的答案,但考虑到BoxLayout类的复杂性与在 IB 中布置接口的关系,询问您为什么要这样做似乎很相关。

于 2011-06-07T20:58:50.510 回答