蘋果官方指南:Cocoa應(yīng)用程序的特性
創(chuàng)建一個Cocoa應(yīng)用程序,而又不必編寫哪怕一行代碼的情況是可能的。在Xcode中建立一個新的Cocoa工程,然后進(jìn)行連編就可以了。當(dāng)然,這個應(yīng)用程序不做很多工作,至少不做很多有趣的工作。但是,這個極度簡單的應(yīng)用程序在鼠標(biāo)雙擊時仍然可以啟動,可以在Dock上顯示圖標(biāo),可以顯示其主菜單和窗口(標(biāo)題為“Window”),可以根據(jù)命令將自身隱藏,可以和其它運行著的應(yīng)用程序互動,還可以處理退出命令。您可以對這個窗口進(jìn)行移動、調(diào)整尺寸、最小化、和關(guān)閉,甚至可以打印包含在窗口中的空白部分。
想像一下如果加入一點代碼,您可以做些什么。
在編程方面,Cocoa為開發(fā)者提供很多免費或代價很低的支持。當(dāng)然,要成為一個高效率的Cocoa開發(fā)者意味著要熟悉新的概念、設(shè)計模式、編程接口、和開發(fā)工具,而這方面的努力并不是無足輕重的。但是熟能生巧,編程在很大程度上變成一種將Cocoa提供的編程組件和負(fù)責(zé)定義特殊邏輯的定制對象及代碼裝配在一起、再將這些裝配物組合在一起的練習(xí)。
接下來的部分是一個簡短的列表,說明Cocoa如何為您的應(yīng)用程序增加價值,而只需要您加入少量的工作(有時候甚至不需要):
基本應(yīng)用程序框架—Cocoa為事件驅(qū)動的行為和應(yīng)用程序、窗口、工作空間(workspace)的管理提供了基礎(chǔ)設(shè)施。在大多數(shù)情況下,您不必直接處理事件或發(fā)送任何描畫命令給渲染庫。
用戶界面對象—Cocoa為應(yīng)用程序的用戶界面提供了豐富而又現(xiàn)成的對象。這些對象的大部分都在Interface Builder(創(chuàng)建用戶界面的開發(fā)工具)的選盤上,您只要簡單地將對象從選盤拖拽到界面上,配置好屬性,并將它連接到其它對象上就可以了(當(dāng)然,您也可以通過編程的方式對其進(jìn)行實例化、配置、以及建立對象之間的連接)。下面是一些Cocoa用戶界面對象的實例:
windows |
text fields |
radio buttons |
drawers |
sheets |
tab views |
table views |
browsers |
pop-up lists |
sliders |
image views |
color wells |
combo boxes |
scroll views |
text views |
steppers |
此外,Cocoa還有一些支持用戶界面的技術(shù),包括提高可訪問性、執(zhí)行正當(dāng)性檢查、以及連接用戶界面對象和定制對象需要的技術(shù)。
描畫和圖像處理—Cocoa帶有一個可以鎖定圖形焦點并將視圖(或視圖的一部分)標(biāo)識為“變臟” 的框架,從而支持高效的定制視圖描畫。Cocoa中還有一些描畫貝齊爾(Bezier)路徑、執(zhí)行遠(yuǎn)交變換、合成圖像、以及創(chuàng)建不同圖像表示的編程工具類。
系統(tǒng)交互—Cocoa使您的應(yīng)用程序可以和文件系統(tǒng)、工作空間、以及其它應(yīng)用程序進(jìn)行交互(或使用它們提供的服務(wù))。
數(shù)據(jù)交換—Cocoa通過拷貝-粘貼、拖拽模型、以及Services菜單簡化了應(yīng)用程序內(nèi)部和應(yīng)用程序之間的數(shù)據(jù)交換。
性能—為了增強(qiáng)應(yīng)用程序的性能,Cocoa提供了多線程、空閑時間處理、資源的遲緩加載、內(nèi)存管理、和運行環(huán)操作方面的編程支持。
基于文檔的應(yīng)用程序—Cocoa為應(yīng)用程序提供一種可以包含無限數(shù)量的文檔架構(gòu)。每個文檔都包含在它自己的窗口中(比如一個字處理程序)。事實上,如果您選擇“Document-based application(基于文檔的應(yīng)用程序)”工程類型,那么這類應(yīng)用程序需要的很多組件就自動被創(chuàng)建了。
腳本處理—通過應(yīng)用程序腳本能力信息和一組支持腳本的Cocoa類,您就可以使自己的應(yīng)用程序具有腳本能力。也就是說,您的應(yīng)用程序可以響應(yīng)由AppleScript腳本發(fā)出的命令。應(yīng)用程序也可以通過執(zhí)行腳本或使用單獨的Apple Event來向其它應(yīng)用程序發(fā)送命令,或者接受其它應(yīng)用程序的命令。結(jié)果是每個具有腳本能力的應(yīng)用程序都可以為用戶或其它應(yīng)用程序提供服務(wù)。
國際化—Cocoa使用一種已經(jīng)精化多年的方法來支持國際化和本地化。這種方法基于偏好語言的用戶列表,將本地化的資源放到應(yīng)用程序的程序包(bundle)中。Cocoa還提供產(chǎn)生和訪問本地化字符串的工具和編程接口。而且,Cocoa中的文本操作缺省情況下是基于Unicode的,因此有利于程序的國際化。
Undo管理—您可以注冊一個用戶動作來和undo管理器協(xié)同工作,當(dāng)用戶選擇合適的菜單項時,它們會處理undo(或redo)動作。Undo管理器通過獨立的棧來維護(hù)undo和redo操作。
文本—Cocoa提供了一個復(fù)雜的文本系統(tǒng),使您可以進(jìn)行從簡單到較為復(fù)雜的文本處理,簡單文本處理的一個例子是在文本視圖上顯示可編輯的文本,復(fù)雜的處理則比如字距和連字的控制、拼寫檢查、和嵌入圖像。
打印—和文本系統(tǒng)相類似,打印架構(gòu)使您可以打印文檔和其它應(yīng)用程序內(nèi)容,并進(jìn)行各種控制調(diào)整。在最簡單的級別上,您缺省可以打印各種視圖的內(nèi)容;在較為復(fù)雜的級別上,您可以定義打印的內(nèi)容和格式,控制一個打印作業(yè)如何進(jìn)行,以及在打印面板上添加必要的視圖。
偏好設(shè)置—用戶缺省設(shè)置系統(tǒng)基于一個系統(tǒng)范圍內(nèi)的數(shù)據(jù)庫,您可以將全局或應(yīng)用程序特有的偏好設(shè)置存儲在這個數(shù)據(jù)庫中。
連網(wǎng)—Cocoa包含一個分布式對象(Distributed Objects)架構(gòu),它使一個Cocoa進(jìn)程可以和相同或不同的計算機(jī)上的其它進(jìn)程進(jìn)行通訊。這個架構(gòu)還提供將Bonjour能力集成到應(yīng)用程序的編程接口。
多媒體—Cocoa提供了QuickTime視頻和基本音頻能力的支持。