可可的BoxLayout

时间:2011-06-07 19:11:07

标签: cocoa boxlayout

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

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

(QUESTION_START)

如何在Java中创建与BoxLayout class功能相同的Objective C类? (只需点击链接,该页面上的图片就会显示有关BoxLayout的所有信息。)

(QUESTION_END)

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

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

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

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

谢谢!

1 个答案:

答案 0 :(得分:0)

回答你的第一个问题是有点困难和公平的,所以我将首先深入研究你的问题:

  

如何询问用户界面元素(例如按钮)的大小?

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

考虑到这一点,假设BoxLayout类是某种类型的控制器,您可以在其中添加UI元素,然后BoxLayout控制器将它们排列在网格中(或无论如何NSView某种。

我知道你并不是在寻找有问题动机的答案,但考虑到BoxLayout课程的复杂性而不是在IB中设置界面,似乎有必要问你为什么要这样做。< / p>