2012-10-18 53 views
0

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

回答

0

是的,只是在加载时提供不同的NIB文件名。你无法做到这一点的地方是应用程序的NIB,但它应该没有菜单栏旁边的UI元素,所以只需将它保留为弹簧和支撑(即不自动布局)即可。例如,为了处理NIB文件名,这可能涉及覆盖makeWindowControllerswindowNibName,例如NSDocument。有关解决某个特定课程的更多信息,请参阅文档 - 这绝对是可行的。

1

当然。只需创建不同的NIB文件,例如在这些文件的名称末尾添加版本,然后在运行时找出当前系统正在运行的OS X版本,并以编程方式为OS X版本加载正确的lib。尽管(可能,我以前没有这样做,但我不推荐它),但是为您的应用程序的“主要”NIB做这件事相当困难。只需将主要的NIB 10.6兼容,并只将主菜单放入它以及应用程序委托(如果您希望它由NIB文件创建,而不是通过编程创建)。将所有窗口,视图和其他UI元素成单独的NIB文件,然后你的应用程序委托中,在回调程序加载NIB文件,比如applicationDidFinishLaunching:

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

+0

因此,每个UI元素应该创建在单独的nib中,并且在启动时如果我是例如10.7 OS X,则加载为10.7创建的所有元素的nib,如果它是10.6,则加载创建的所有元素的nib为10.6?为什么你不推荐为所有元素和一切都创建的主要笔尖做呢?那么它将只有两个笔尖,必须根据OS X版本进行加载。听起来更简单,仅仅是行动,而启动应用程序会更困难。 – hockeyman

+0

@Julius:因为主要的笔尖通常会自动加载并以编程方式加载主要的笔尖要困难得多。你也不需要每个UI元素有一个Nib,你只能有三个Nib,Main,一个包含所有10.6个元素,另一个包含所有10.7+个元素。对于可以放入单个笔尖的Windows,视图和其他元素的数量没有限制。也不需要将所有东西都放入主笔尖;只需将应用程序委托和主菜单放入主要的Nib并将其他所有内容(包括主窗口)放入其他Nib文件就足够了。 – Mecki

相关问题