2010-09-14 99 views
1

我想知道是否有人從Mac開發社區知道如何開發基於xml文件的Mac用戶界面。我們需要重新設計我們的軟件,並且將在UI部分上工作,有人建議將UI部分放在基於xml文件的位置,以便它是動態的。從來沒有嘗試過這種方法的Mac,但我知道這是熟悉的Java。基於XML文件的Mac用戶界面

這個想法是定義所有的控制設置,按鈕的高度,寬度,位置等...或整個佈局在基於xml的文件中,有一個解析器將讀取所有這些,然後形成用戶界面。

有沒有辦法做到這一點的Mac?有誰知道如何?

回答

2

是的,它已經完成。 Interface Builder這是 Cocoa世界中的標準UI生成器使用XIB文件,這是一個編碼所有UI的XML文件。 XIB文件和程序代碼非常鬆散耦合,並且XIB文件可以獨立更改而無需重新編譯。它曾經是一個名爲NIB的非XML文件,但區別僅在於實現細節,我們不應該在意。

Objective-C和任何綁定到Cocoa的語言都知道如何讀取XIB文件並實例化在其中凍結的UI。

如果你只是想讓一個動態的UI與代碼分離開來,它自古以來就是OS X(和NeXTStep)的標準。事實上,在Cocoa世界中,通過明確編碼來設置UI元素非常罕見。包括Apple本身在內的每個人都使用Interface Builder。世界終於開始趕上我們這些天:)

一個問題可能是,XML架構是蘋果公司的私人事情,但已有一些工具可用於XIB文件。蘋果自己的ibtool就是一個例子;一個名爲nib2objc的開源項目是另一個項目。這一個將XIB/NIB文件轉儲爲一個等效的Objective-C代碼,對於那些無法看到代碼構建UI的老人定時器。

附錄:我應該再次強調,XIB文件是一個XML文件的事實是從Apple的角度來看的一個實現細節,您通常不應該直接觸摸XML文件。蘋果想要實現的是邏輯和UI的鬆散耦合,而使用XML只是一個細節。所以,你需要決定是否

  1. 想使用XML的互操作性,或
  2. 你想從代碼中分離UI。

你在問題中寫的東西聽起來像2.然後界面生成器是完美的匹配。但是,如果1是你想要的,XIB文件將不適合你。

+0

嗨Yuji,感謝您的信息,這是否意味着我們仍然需要使用界面構建器爲UI構建?你能指出我使用XML模式的一些例子嗎? – pinkLD 2010-09-16 01:41:46

+0

是的,基本上你需要使用Interface Builder(IB)。我會說,不要重新發明輪子;只是使用IB。你想製作一個跨平臺的應用程序嗎?當然,國際文憑組織不會幫助你,你需要設計你自己的XML模式。我添加了一個鏈接到一個直接處理nib/xib文件的項目。 – Yuji 2010-09-16 04:05:13