是否有可能以某種方式針對不同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