Mac OS X 讀書第一天筆記

一、常用Foundation框架里的類總覽

? ? ? Foundation類層次的根是NSObject,它(和NSObject及NSCopying協(xié)議一起)定義了基本的對象屬性和行為丛晌。


值對象:值對象封裝了各種類型的數(shù)據(jù),提供對各種數(shù)據(jù)訪問和操作的路徑。NSData為字節(jié)流提供面向?qū)ο蟮拇鎯臻g,NSValue和NSNumber則為簡單的標(biāo)量值數(shù)組提供面向?qū)ο蟮拇鎯臻g做祝,NSDate、NSCalendarDate鸡岗、NStimeZone混槐、NSCalendarNSDateComponents和NSLocale類代表時間、日期轩性、日歷和地域設(shè)置的對象

字符串:NSString是另一類值對象声登,負(fù)責(zé)以null為結(jié)尾的、具有特定編碼的字節(jié)數(shù)組提供面向?qū)ο蟮拇鎯臻g揣苏。NSString還提供對字符串進(jìn)行檢索悯嗓、組合和比較、以及對文件路徑進(jìn)行操作的方法卸察「可以使用NSScanner對象來對NSString對象中的數(shù)字和詞進(jìn)行解析。NSCharacterSet代表可以在哥哥NSString和NSScanner中使用的統(tǒng)一的一組字符蛾派。

集合:集合是以一定順序存儲和訪問其它對象的對象俄认。NSArray的索引從0開始个少,NSDictionary使用鍵值對洪乍,NSSet則是復(fù)則對象的隨機(jī)存儲(NSCountedSet類使集合具有唯一標(biāo)識)。

操作系統(tǒng)服務(wù):NSProcessInfo類查詢應(yīng)用程序的運(yùn)行環(huán)境夜焦;NSHost可以得到主機(jī)系統(tǒng)在網(wǎng)絡(luò)中的名稱和地址壳澳;通過NSTimer對象,可以按指定的時間間隔向其它對象發(fā)送消息茫经;NSRunLoop可以管理應(yīng)用程序和其它類型程序的輸入源巷波;NSUserDefaults則為存儲全局和用戶缺省值的系統(tǒng)數(shù)據(jù)庫提供編程接口

文件系統(tǒng)和URL:NSFileManager提供文件操作;NSFileHandle則可以進(jìn)行較為底層的文件操作卸伞;NSBundle用來查找程序包中的資源抹镊;用NSURL和NSURLHandle來表示、訪問和管理源于URL的數(shù)據(jù)荤傲。

線程和子任務(wù):NSThread(現(xiàn)在可能已經(jīng)過時了吧垮耳,不是很確定,留待后面解決,今天只看大綱)

通知:略(打算后面想寫)

歸檔和序列化:NSCoder及其子類和NSCoding協(xié)議一起终佛,可以以獨(dú)立于架構(gòu)的方式來表示對象中包含的數(shù)據(jù)俊嗽,將類信息和數(shù)據(jù)一起存儲。

表達(dá)式和條件判斷:NSPredicate铃彰、NSCompoundPredicate和NScomparisonPredicate類绍豁,負(fù)責(zé)對獲取或過濾對象的邏輯約束條件進(jìn)行封裝。NSExpression對象則代表?xiàng)l件判斷中的表達(dá)式

Spolight查詢:NSMetadataItem牙捉、NSMetadataQuery和相關(guān)查詢類對文件系統(tǒng)的元數(shù)據(jù)進(jìn)行封裝竹揍,使元數(shù)據(jù)的查詢成為可能


二、常用Application Kit框架

? ? ? ?Application Kit 由超過125個類和協(xié)議組成邪铲。所有的類最終都是從Foundation框架的NSObject類繼承而來鬼佣。


? ? ? ?Application Kit 中最大的分支的根是NSResponder類,負(fù)責(zé)定義響應(yīng)者鏈霜浴,即對用戶事件響應(yīng)的有序?qū)ο罅斜砭е浴SApplication、NSWindow阴孟、NSView都是繼承自NSResponder類

? ? ? ?第二大分支是繼承事NSCell類晌纫,這組類和NSControl類(它繼承自NSView)的派生類有大體上的映像關(guān)系。對于負(fù)責(zé)響應(yīng)用戶動作的用戶界面對象永丝,Application Kit 采用的架構(gòu)將它們的工作氛圍控件(control)對象和單元(cell)對象锹漱。大多數(shù)的控件對象和一個或多個單元對象相關(guān)聯(lián),單元對象負(fù)責(zé)實(shí)現(xiàn)描畫細(xì)節(jié)和事件的處理慕嚷「珉梗控件和單元的實(shí)現(xiàn)機(jī)制基于Application Kit的一個重要設(shè)計模式:目標(biāo)-動作(target-action)機(jī)制。單元對象可以保留用戶點(diǎn)擊(或在單元上進(jìn)行某種動作)時應(yīng)該發(fā)送給特定對象的消息標(biāo)識信息喝检。當(dāng)用戶操作一個控件時嗅辣,控件就從它的單元對象抽取必要信息,并向目標(biāo)對象發(fā)送動作消息挠说。目標(biāo)-動作機(jī)制是您可以指定目標(biāo)對象及應(yīng)該調(diào)用的方法澡谭,從而賦予用戶動作某種意義。

Application Kit中另一個基于設(shè)計模式的機(jī)制時委托機(jī)制损俭。用戶界面上的很多對象蛙奖,比如文本框、表視圖等杆兵,都定義了委托雁仲。委托對象代表被委托對象進(jìn)行各種動作或者與之互相協(xié)作。

三琐脏、通用的用戶界面類總覽

全局應(yīng)用程序?qū)ο螅?/b>每個應(yīng)用程序都使用一個NSApplication類的單例來控制主事件循環(huán)攒砖、跟蹤應(yīng)用程序的窗口和菜單、將事件分發(fā)給合適的對象,建立高級別的自動釋放池祭衩、以及接受應(yīng)用程序級別的事件通告灶体。NSApplication對象有一個委托對象,在應(yīng)用程序啟動或終止掐暮、被隱藏或被激活蝎抽、即將打開用戶選擇的文件等時候,委托對象會得到通知路克。通過設(shè)置改為他的代理對象并實(shí)現(xiàn)相應(yīng)的委托方法樟结,就可以定制應(yīng)用程序的行為。

窗口和視圖:NSWindow和NSView精算,都是繼承自NSResponder類瓢宦,可以對用戶動作進(jìn)行響應(yīng),NSApplication中維護(hù)著一個NSWindow的對象列表--應(yīng)用程序的每個窗口都有一個對應(yīng)的對象灰羽,而每個NSWindow對象都維護(hù)一些具有一定層次結(jié)構(gòu)的NSView對象驮履。視圖層次用于窗口內(nèi)部的描畫和事件處理。NSWindow對象負(fù)責(zé)處理窗口級別的事件廉嚼,將其他事件分發(fā)給窗口中的NSView視圖對象玫镐,并對視圖對象提供一個描畫區(qū)域,NSWindow對象也有一個委托怠噪,用于定制窗口的行為恐似。

? ? ? NSView是現(xiàn)實(shí)在窗口中所有對象的超類。所有的NSView都需要借助圖形函數(shù)來實(shí)現(xiàn)自己的描繪方法傍念;drawRect:是一個基本方法矫夷,在創(chuàng)建新的NSView時,需要重載這個方法憋槐。

Cocoa綁定的控制器類双藕。NSController是一個抽象類,它的具體子類有NSObjectController秦陋、NSArrayController和NSTreeController蔓彩,它們是Cocoa綁定實(shí)現(xiàn)的一部分治笨。這個技術(shù)可以自動同步存儲在對象中的應(yīng)用程序數(shù)據(jù)和該數(shù)據(jù)在用戶界面上的表現(xiàn)驳概。

面板(對話框):NSPanel是NSWindow的子類,用于顯示一些短暫的旷赖、全局的顺又、或緊急的信息。比如等孵,您可以使用一個NSPanel的實(shí)例(而不是NSWindow)來顯示錯誤信息稚照,或請求用戶對特殊或不正常的情況進(jìn)行響應(yīng)。Application為您提供一些常用的對話框,比如Save果录、Open和Print對話框上枕,用于程序的公共操作油吭。

菜單和光標(biāo):NSMenu创橄、NSMenuItem 和 NSCursor類負(fù)責(zé)定義應(yīng)用程序顯示給用戶的菜單和光標(biāo)的行為、外觀湘纵。

分組和滾動視圖:NSBox返弹、NSScrollView 和 NSSplitView類用于為窗口中的視圖集合或其他視圖對象提供圖形“附件”锈玉,您可以通過NSBox類將窗口中的元素進(jìn)行分組,并為整組元素描畫一個邊界义起。NSSplitView可以在垂直或者水平方向加一些視圖拉背,并為每個視圖分配一定的公共區(qū)域,用戶可以通過滑動控制條來重新飛配視圖的區(qū)域默终。NSCrollView類及其輔助類椅棺,NSClipView,為用戶提供一個滾動機(jī)制齐蔽,以及讓用戶初始化和控制滾動動圖形對象土陪。NSRulerView類則可以為一個滾動動視圖添加標(biāo)尺和標(biāo)志。

表示圖和大綱視圖:NSTableView以行列的方式顯示數(shù)據(jù)肴熏。NSTableView可以很好地(但不僅限于)用于顯示數(shù)據(jù)庫記錄鬼雀。NSOutlineView(NSTableView的子類)提供了另外一種顯示表格數(shù)據(jù)的方法。通過NSBrower類蛙吏,可以創(chuàng)建一個顯示和漫游層次數(shù)據(jù)的對象源哩。

四、文字和字體

NSTextFeild:可編輯輸入框

NSTextView:重量級文本輸入框鸦做。支持富文本励烦,添加文件,輸入管理和按鍵綁定泼诱、以及標(biāo)識文本屬性坛掠,可以和Font窗口及Font菜單、標(biāo)尺及段落風(fēng)格治筒、Serivces工具屉栓、還有剪切板等組建協(xié)作。

? ? ? 通過NSTextStorage耸袜、NSLayoutManager友多、NSTextContainer和其它相關(guān)的類,還可以實(shí)現(xiàn)更強(qiáng)大的文本操作堤框。

NSFont和NSFontManager類用于封裝和管理字體域滥。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末纵柿,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子启绰,更是在濱河造成了極大的恐慌昂儒,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件委可,死亡現(xiàn)場離奇詭異荆忍,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)撤缴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進(jìn)店門刹枉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人屈呕,你說我怎么就攤上這事微宝。” “怎么了虎眨?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵蟋软,是天一觀的道長。 經(jīng)常有香客問我嗽桩,道長岳守,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任碌冶,我火速辦了婚禮湿痢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘扑庞。我一直安慰自己譬重,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布罐氨。 她就那樣靜靜地躺著臀规,像睡著了一般。 火紅的嫁衣襯著肌膚如雪栅隐。 梳的紋絲不亂的頭發(fā)上塔嬉,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天,我揣著相機(jī)與錄音租悄,去河邊找鬼谨究。 笑死,一個胖子當(dāng)著我的面吹牛恰矩,可吹牛的內(nèi)容都是我干的记盒。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼外傅,長吁一口氣:“原來是場噩夢啊……” “哼纪吮!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起萎胰,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤碾盟,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后技竟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體冰肴,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年榔组,在試婚紗的時候發(fā)現(xiàn)自己被綠了熙尉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡搓扯,死狀恐怖检痰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情锨推,我是刑警寧澤铅歼,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站换可,受9級特大地震影響椎椰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜沾鳄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一慨飘、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧译荞,春花似錦套媚、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至浆熔,卻和暖如春本辐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背医增。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工慎皱, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人叶骨。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓茫多,卻偏偏與公主長得像,于是被迫代替她去往敵國和親忽刽。 傳聞我的和親對象是個殘疾皇子天揖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容