不同的OS X版本的不同笔尖

时间:2012-10-18 15:03:52

标签: objective-c xcode macos interface-builder

是否可能以某种方式为不同的OS X版本提供不同的nib文件?因为例如10.6没有自动布局功能,而在10.7和10.8上它是一个很好的功能。因此,如果有可能,我可以为10.6创建一个笔尖,为10.7和10.8创建另一个笔尖。

2 个答案:

答案 0 :(得分:1)

不确定。只需创建不同的NIB文件,例如在这些文件名称末尾添加版本,然后在运行时找出当前系统正在运行的OS X版本,并以编程方式为OS X版本加载正确的库。

为您的应用程序的“主要”NIB执行此操作会相当困难(尽管可能,我之前已经做过,但我不推荐它)。只需将主NIB 10.6兼容,只将主菜单放入其中,以及应用程序委托(如果您希望它由NIB文件创建而不是以编程方式创建)。将所有窗口,视图和其他UI元素放入单独的NIB文件中,然后在应用程序委托中,以编程方式在applicationDidFinishLaunching:

之类的回调中加载NIB文件

只需查看Apple's NIB File Documentation,然后搜索“以编程方式加载Nib文件”。有一些有用的链接指向所需的方法,以及一些简单常见情况的示例代码。

答案 1 :(得分:0)

是的,只需在加载时提供不同的NIB文件名。你无法做到这一点的地方是应用程序NIB,但它应该没有菜单栏旁边的UI元素,所以只需保留spring-and-struts(即不自动布局)。

这可能涉及覆盖makeWindowControllers上的windowNibNameNSDocument,例如,以便处理NIB文件名。有关为特定类解决此问题的更多信息,请参阅文档 - 这绝对是可行的。