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