Sea*_*ean 4 macos cocoa objective-c interface-builder
我对Cocoa for MacOSX很新,但我不禁觉得我一直在与Interface Builder对抗.
我目前的情况是我正在构建一个具有多个自定义控件和视图的应用程序.我开始在Interface Builder中构建应用程序,因为它最初很容易拖动并使用正确的颜色和正确的自动调整规则将它们放入正确的位置.然而,现在是开始构建我的自定义控件和视图的时候了 - 我无法在Interface Builder中很好地代表它,而无需完成构建IBPlugin的工作!我所知道的唯一另一个选择是拥有一个Interface Builder文档,其中包含一堆"自定义视图",只更改了类.即使对IB感到麻烦,这似乎也毫无意义 - 尤其是考虑到这些控件和视图将具有需要设置的颜色等属性的事实 - 就像IB文档中已有的其他视图和控件一样.所以现在我已经在两个断开连接的位置设置了可视化属性,似乎与IB的一个潜在优势相反,这使得相对容易调整应用程序的UI而无需深入研究代码.
我还面临一种情况,即一些控件根据数据或当前选择更改属性(如颜色).所以现在我在Interface Builder中指定了控件的初始默认颜色,但是我必须在代码中指定数据驱动的颜色?Interface Builder似乎再次让我必须在它的世界和代码之间拆分一些表示设置.我想有可能通过一个了解我的数据或状态或其他的复杂插件来解决这个问题,但似乎我最终维护了大量的支持代码,因此Interface Builder的经验仍然是"正确的".
我经常看到的其他一些内容是IB允许您轻松定义组件之间的绑定."你可以不用编写任何代码就可以做到!" 同样,我可能会遗漏一些东西,但据我所知,将一个属性绑定到另一个属性是一行代码.在IB中的框中设置几个属性真的比编写一行代码要好吗?为什么在表示层的规范中添加相当于应用程序逻辑的更好?
就像我在公开场合所说的那样,我对这个Cocoa的东西很新,但是我觉得我要么缺少一些关于如何使用Interface Builder的非常重要的东西,要么它主要是设计用于具有高"哇"的琐碎演示应用程序因子.
我发现Interface Builder非常适合获取应用程序的通用布局.对于像绑定这样的东西(在Mac上)也很棒.但是,您无法使用Interface Builder创建Delicious Library.您的界面越复杂,您需要编写的代码就越多.
Interface Builder可能需要一点时间习惯.但是,如前所述,使用它越多,它就越好.当然,自定义视图可以在代码中完成,但IB是一个标准.社区将Mac应用程序保持在某些UI质量标准,远远高于其他平台的UI标准.IB使得遵守这些标准比在代码中执行所有操作更容易,没有可视化参考.
而且您无需在代码中执行任何操作即可将UI用于版本控制.我的所有Cocoa项目都在他们自己的git存储库中,包含nib/xib文件.
所以给IB一个机会.只要你使用它就越容易.
| 归档时间: |
|
| 查看次数: |
777 次 |
| 最近记录: |