Interface Builder
開發者 | 蘋果公司 |
---|---|
當前版本 | 3.2(2009) |
類型 | 軟件開發 |
許可協議 | 專有軟件 |
網站 | http://developer.apple.com/ |
Interface Builder(縮寫:IB),是用於蘋果公司Mac OS X操作系統的軟件開發程序,是Xcode套件的一部分。Cocoa和Carbon開發者可以使用Interface Builder來創建和修改應用程序的圖形用戶界面。其數據以XML的形式被儲存在.xib文件中。在過去,其數據則是儲存在.nib文件中的,nib是「NeXT Interface Builder」的縮寫。
Interface Builder是繼承自NeXTSTEP的開發套件的。OpenStep的開發也使用了IB的一個版本,而GNUStep則使用一個非常類似的,稱為Gorm的工具。
2008年3月27日,隨着iPhone SDK Beta 2的發布,IB開始提供對iPhone程序開發的支持,允許開發者使用IB設計iOS應用程序的界面。
歷史
[編輯]1988年,IB作為NeXTSTEP 0.8的一部分首次出現。它最初由Jean-Marie Hullot所設計和編寫,計劃用於Lisp(即Expertelligence出品的ExperLisp)。它是首批可以使用鼠標放置按鈕,選單,視窗等控件的商業軟件之一。
設計
[編輯]IB向Objective-C開發者提供了包含一系列用戶界面對象的工具箱,這些對象包括文本框,數據表格,滾動條,彈出式菜單等控件。IB的工具箱是可擴展的,也就是說,所有開發者都可以開發新的對象,並將其加入IB的工具箱中。
開發者只需要從工具箱中簡單的向窗口或菜單中拖拽控件即可完成界面的設計。然後,用連線將控件可以提供的「動作」(Action)、控件對象分別和應用程序代碼中對象「方法」(Method)、對象「接口」(Outlet)連接起來,就完成了整個創建工作。與其它圖形用戶界面設計器,例如Microsoft Visual Studio相比,這樣的過程減小了MVC模式中控制器和視圖兩層的耦合,提高了代碼質量。
在代碼中,使用IBAction
標記接受動作的方法,而用IBOutlet
標記對象接口[1]。
IB將應用程序界面保存為捆綁,其中包含了界面對象及其與應用程序的關係。這些對象被序列化為XML文件或NeXT風格的屬性列表文件,擴展名為.nib。在應用程序運行時,對應的NIB對象調入內存,與其應用程序的二進制代碼聯繫起來。與絕大多數其餘GUI設計系統不同,IB不是生成代碼以在運行時產生界面(如Glade,CodeGear的C++ Builder所做的),而是採用與代碼無關的機制,通常稱為freeze dried。從IB 3.0開始,加入了一種新的文件格式,其擴展名為.xib。這種格式與原有的格式功能相同,但其為單獨文件而非捆綁,以便於版本控制系統的運作,以及類似diff的工具的處理。
未來發展
[編輯]2010年6月的WWDC上,蘋果宣布在Xcode4中會將IB和Xcode整合在一起,即在Xcode中直接提供編輯圖形界面的功能。這意味着隨着Xcode 4的發布,IB在Mac OS X中將不再作為單獨的程序提供[2][3]。
參考文獻
[編輯]- ^ Interface Builder User Guide (頁面存檔備份,存於網際網路檔案館)(PDF)
- ^ WWDC Software Notes: Safari 5, Xcode 4, iTunes 9.2. Mac Rumors. 2010-06-08 [2010-06-21]. (原始內容存檔於2020-10-25).
- ^ XCode 4, whats new. [2010-10-10]. (原始內容存檔於2015-03-25).
外部連結
[編輯]- Apple's Interface Builder description (頁面存檔備份,存於網際網路檔案館) for Cocoa and Carbon development
- Sun's Interface Builder documentation for OpenStep development
- Apple's Nib file documentation (頁面存檔備份,存於網際網路檔案館)