2012-10-18 83 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

相關問題