是否有可能以某种方式针对不同OS X版本拥有不同的笔尖文件?因为例如10.6没有自动布局功能,而在10.7和10.8上则是一个很好的功能。所以如果可能的话,我可以创建一个10.6的笔尖,另一个笔尖的10.7和10.8。针对不同OS X版本的不同笔尖
0
A
回答
0
是的,只是在加载时提供不同的NIB文件名。你无法做到这一点的地方是应用程序的NIB,但它应该没有菜单栏旁边的UI元素,所以只需将它保留为弹簧和支撑(即不自动布局)即可。例如,为了处理NIB文件名,这可能涉及覆盖makeWindowControllers
或windowNibName
,例如NSDocument
。有关解决某个特定课程的更多信息,请参阅文档 - 这绝对是可行的。
1
当然。只需创建不同的NIB文件,例如在这些文件的名称末尾添加版本,然后在运行时找出当前系统正在运行的OS X版本,并以编程方式为OS X版本加载正确的lib。尽管(可能,我以前没有这样做,但我不推荐它),但是为您的应用程序的“主要”NIB做这件事相当困难。只需将主要的NIB 10.6兼容,并只将主菜单放入它以及应用程序委托(如果您希望它由NIB文件创建,而不是通过编程创建)。将所有窗口,视图和其他UI元素成单独的NIB文件,然后你的应用程序委托中,在回调程序加载NIB文件,比如applicationDidFinishLaunching:
只要看看Apple's NIB File Documentation,并搜索“加载nib文件编程”。有一些有用的链接指向所需的方法,以及一些简单常见情况的示例代码。
相关问题
- 1. 不同设备的不同笔尖
- 2. 不同版本的可可应用程序不同的OS X版本
- 3. 针对不同版本的JRE
- 4. Uitablecell推入不同的笔尖
- 5. 来自不同类别的笔尖
- 6. 加载不同的笔尖文件
- 7. 从不同的笔尖添加NSView
- 8. 主菜单在不同的笔尖
- 9. 针对不同产品版本的不同价格的产品
- 10. 针对不同版本的Node.js使用不同的node_modules目录
- 11. 针对不同的iOS版本使用不同的Info.plist文件?
- 12. 不同的appWidgetProviders针对不同的Android版本
- 13. iphone两个笔尖有不同的x坐标为中心
- 14. 针对不同环境的不同Android版本
- 15. 针对不同Android版本的不同布局
- 16. 针对不同MVC版本的不同NuGet Web.Config.Transforms
- 17. 针对不同Android SDK版本的不同主题
- 18. 针对不同CUDA版本的不同构建规则?
- 19. 笔尖视图不同于模拟器
- 20. 两个笔尖,相同的对象(iPhone)
- 21. 不同版本的Mac OS X之间的单独代码?
- 22. 针对10个不同用户的相同iPhone应用的不同版本
- 23. 在iOs中手动加载不同的本地化笔尖
- 24. 在不同版本的XCode上编译并运行相同的代码,以针对不同的iOS版本
- 25. 为什么Swift 3对待OS X和iOS版本的NSString不同?
- 26. mac os从根版本的java版本是不同的
- 27. Android:如何针对不同的Android版本使用不同的主题?
- 28. GAE - 针对不同客户的不同项目或针对不同客户的相同应用的不同版本?
- 29. 不同版本
- 30. 针对不同数据的不同MKPinAnnotation
因此,每个UI元素应该创建在单独的nib中,并且在启动时如果我是例如10.7 OS X,则加载为10.7创建的所有元素的nib,如果它是10.6,则加载创建的所有元素的nib为10.6?为什么你不推荐为所有元素和一切都创建的主要笔尖做呢?那么它将只有两个笔尖,必须根据OS X版本进行加载。听起来更简单,仅仅是行动,而启动应用程序会更困难。 – hockeyman
@Julius:因为主要的笔尖通常会自动加载并以编程方式加载主要的笔尖要困难得多。你也不需要每个UI元素有一个Nib,你只能有三个Nib,Main,一个包含所有10.6个元素,另一个包含所有10.7+个元素。对于可以放入单个笔尖的Windows,视图和其他元素的数量没有限制。也不需要将所有东西都放入主笔尖;只需将应用程序委托和主菜单放入主要的Nib并将其他所有内容(包括主窗口)放入其他Nib文件就足够了。 – Mecki