Mac OS X 讀書第一天筆記

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

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


值對象:值對象封裝了各種類型的數據,提供對各種數據訪問和操作的路徑。NSData為字節流提供面向對象的存儲空間,NSValue和NSNumber則為簡單的標量值數組提供面向對象的存儲空間,NSDate、NSCalendarDate、NStimeZone、NSCalendarNSDateComponents和NSLocale類代表時間、日期、日歷和地域設置的對象

字符串:NSString是另一類值對象,負責以null為結尾的、具有特定編碼的字節數組提供面向對象的存儲空間。NSString還提供對字符串進行檢索、組合和比較、以及對文件路徑進行操作的方法。可以使用NSScanner對象來對NSString對象中的數字和詞進行解析。NSCharacterSet代表可以在哥哥NSString和NSScanner中使用的統一的一組字符。

集合:集合是以一定順序存儲和訪問其它對象的對象。NSArray的索引從0開始,NSDictionary使用鍵值對,NSSet則是復則對象的隨機存儲(NSCountedSet類使集合具有唯一標識)。

操作系統服務:NSProcessInfo類查詢應用程序的運行環境;NSHost可以得到主機系統在網絡中的名稱和地址;通過NSTimer對象,可以按指定的時間間隔向其它對象發送消息;NSRunLoop可以管理應用程序和其它類型程序的輸入源;NSUserDefaults則為存儲全局和用戶缺省值的系統數據庫提供編程接口

文件系統和URL:NSFileManager提供文件操作;NSFileHandle則可以進行較為底層的文件操作;NSBundle用來查找程序包中的資源;用NSURL和NSURLHandle來表示、訪問和管理源于URL的數據。

線程和子任務:NSThread(現在可能已經過時了吧,不是很確定,留待后面解決,今天只看大綱)

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

歸檔和序列化:NSCoder及其子類和NSCoding協議一起,可以以獨立于架構的方式來表示對象中包含的數據,將類信息和數據一起存儲。

表達式和條件判斷:NSPredicate、NSCompoundPredicate和NScomparisonPredicate類,負責對獲取或過濾對象的邏輯約束條件進行封裝。NSExpression對象則代表條件判斷中的表達式

Spolight查詢:NSMetadataItem、NSMetadataQuery和相關查詢類對文件系統的元數據進行封裝,使元數據的查詢成為可能


二、常用Application Kit框架

? ? ? ?Application Kit 由超過125個類和協議組成。所有的類最終都是從Foundation框架的NSObject類繼承而來。


? ? ? ?Application Kit 中最大的分支的根是NSResponder類,負責定義響應者鏈,即對用戶事件響應的有序對象列表。NSApplication、NSWindow、NSView都是繼承自NSResponder類

? ? ? ?第二大分支是繼承事NSCell類,這組類和NSControl類(它繼承自NSView)的派生類有大體上的映像關系。對于負責響應用戶動作的用戶界面對象,Application Kit 采用的架構將它們的工作氛圍控件(control)對象和單元(cell)對象。大多數的控件對象和一個或多個單元對象相關聯,單元對象負責實現描畫細節和事件的處理??丶蛦卧膶崿F機制基于Application Kit的一個重要設計模式:目標-動作(target-action)機制。單元對象可以保留用戶點擊(或在單元上進行某種動作)時應該發送給特定對象的消息標識信息。當用戶操作一個控件時,控件就從它的單元對象抽取必要信息,并向目標對象發送動作消息。目標-動作機制是您可以指定目標對象及應該調用的方法,從而賦予用戶動作某種意義。

Application Kit中另一個基于設計模式的機制時委托機制。用戶界面上的很多對象,比如文本框、表視圖等,都定義了委托。委托對象代表被委托對象進行各種動作或者與之互相協作。

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

全局應用程序對象:每個應用程序都使用一個NSApplication類的單例來控制主事件循環、跟蹤應用程序的窗口和菜單、將事件分發給合適的對象,建立高級別的自動釋放池、以及接受應用程序級別的事件通告。NSApplication對象有一個委托對象,在應用程序啟動或終止、被隱藏或被激活、即將打開用戶選擇的文件等時候,委托對象會得到通知。通過設置改為他的代理對象并實現相應的委托方法,就可以定制應用程序的行為。

窗口和視圖:NSWindow和NSView,都是繼承自NSResponder類,可以對用戶動作進行響應,NSApplication中維護著一個NSWindow的對象列表--應用程序的每個窗口都有一個對應的對象,而每個NSWindow對象都維護一些具有一定層次結構的NSView對象。視圖層次用于窗口內部的描畫和事件處理。NSWindow對象負責處理窗口級別的事件,將其他事件分發給窗口中的NSView視圖對象,并對視圖對象提供一個描畫區域,NSWindow對象也有一個委托,用于定制窗口的行為。

? ? ? NSView是現實在窗口中所有對象的超類。所有的NSView都需要借助圖形函數來實現自己的描繪方法;drawRect:是一個基本方法,在創建新的NSView時,需要重載這個方法。

Cocoa綁定的控制器類。NSController是一個抽象類,它的具體子類有NSObjectController、NSArrayController和NSTreeController,它們是Cocoa綁定實現的一部分。這個技術可以自動同步存儲在對象中的應用程序數據和該數據在用戶界面上的表現。

面板(對話框):NSPanel是NSWindow的子類,用于顯示一些短暫的、全局的、或緊急的信息。比如,您可以使用一個NSPanel的實例(而不是NSWindow)來顯示錯誤信息,或請求用戶對特殊或不正常的情況進行響應。Application為您提供一些常用的對話框,比如Save、Open和Print對話框,用于程序的公共操作。

菜單和光標:NSMenu、NSMenuItem 和 NSCursor類負責定義應用程序顯示給用戶的菜單和光標的行為、外觀。

分組和滾動視圖:NSBox、NSScrollView 和 NSSplitView類用于為窗口中的視圖集合或其他視圖對象提供圖形“附件”,您可以通過NSBox類將窗口中的元素進行分組,并為整組元素描畫一個邊界。NSSplitView可以在垂直或者水平方向加一些視圖,并為每個視圖分配一定的公共區域,用戶可以通過滑動控制條來重新飛配視圖的區域。NSCrollView類及其輔助類,NSClipView,為用戶提供一個滾動機制,以及讓用戶初始化和控制滾動動圖形對象。NSRulerView類則可以為一個滾動動視圖添加標尺和標志。

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

四、文字和字體

NSTextFeild:可編輯輸入框

NSTextView:重量級文本輸入框。支持富文本,添加文件,輸入管理和按鍵綁定、以及標識文本屬性,可以和Font窗口及Font菜單、標尺及段落風格、Serivces工具、還有剪切板等組建協作。

? ? ? 通過NSTextStorage、NSLayoutManager、NSTextContainer和其它相關的類,還可以實現更強大的文本操作。

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,431評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,637評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,555評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,900評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,629評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,976評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,976評論 3 448
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,139評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,686評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,411評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,641評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,129評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,820評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,233評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,567評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,362評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,604評論 2 380

推薦閱讀更多精彩內容