在现代Swift OSX应用程序中组织XIB和故事板

时间:2016-04-02 15:32:45

标签: xcode swift macos storyboard

这是一个最佳实践问题。

当为OSX创建一个新的Swift应用程序时,它会构建一个Main.storyboard并将其物理放置在Base.lproj文件夹中,但逻辑上放在应用程序的主要&#34;组&#34;。< / p>

我决定将UI的不同部分分成不同的故事板,所以我添加了一个Document.storyboard和Preferences.storyboard。

回想起来,目前尚不清楚这是否是正确的方法 - 对于由单个窗口或视图组成的项目,我应该使用故事板还是仅使用XIB?我已阅读Apple文档,但我不清楚实际差异。是故事板&#34;取代&#34; XIB,它们是我从现在开始应该使用的新热点吗?

现在,我将使用其他视图扩展项目,特别是用于编辑文档某些功能的一系列工作表。我应该将这些全部放在一个故事板,一个XIB或单个XIB中吗?是否有任何理由选择其中一个?

最后,当我添加我的故事板时,它将它们放在项目文件夹的根目录中。这些真的应该转移到Base.lprog吗?

1 个答案:

答案 0 :(得分:4)

这也是我一直在考虑的事情。我最近进入了OS X开发阶段,因此我将分享我对XIB与故事板的业余观点。对于那些对此更熟悉的人,如果我弄错了,请随时纠正我。

Xcode中的界面生成器似乎可以很好地允许您放置骨架,但并不总是为视图提供所有必需的自定义选项。在使用故事板时,我经常会得到一半基于视觉和一半代码的项目。这就像在机器人上工作一样。

Nibs / Xibs遇到同样的问题,但他们甚至都没有尝试实现过渡。据我所知,它们代表单个窗口,视图或菜单项。这使它们更简单,更模块化。你可以编写处理它们连接在一起的代码,而且,起初看起来似乎更麻烦,但实际上,由于获得的控制水平,它对我有益。故事板可以为您做很多事情,但我个人倾向于在代码中将它们放在一起。

理想的解决方案,对我来说,将是Apple实现更抽象形式的用户界面设计:每个窗口(或iOS视图,取决于平台)都包含在笔尖中,故事板只是笔尖之间的过渡映射。例如:您创建所有窗口和菜单,然后使用故事板将它们全部连接起来,但故事板不能编辑任何视图详细信息,只能编辑过渡和连接。

话虽这么说,我很快就达到了我更喜欢笔尖并自己完成所有其他编码的程度。如果不出意外,我会成为更好的程序员。希望这有帮助!