讀《蘋果開發(fā)之 Cocoa 編程》(一)

最近身體出現(xiàn)點問題拘荡,同時對技術(shù)銳進這塊的想法也出現(xiàn)點問題胳徽,想來想去還是先看書做筆記吧伍派,通過記錄書中的有疑問或不知道的零散點來發(fā)現(xiàn)自己的問題,試著改變自己的狀態(tài)屈张。

PS: 此書主要是關(guān)于 Mac 開發(fā)的G苋ā!
1阁谆、應(yīng)用程序運行過程

簡單的討論下應(yīng)用程序的運行過程碳抄,當進程開始運行后,首先運行一個 NSApplicationMain 函數(shù)场绿,創(chuàng)建一個 NSApplication 的實例(提醒自己此處和 App 開發(fā)中的區(qū)別)剖效。應(yīng)用程序?qū)ο笞x取 main NIB 文件內(nèi)容,將歸檔的對象釋放出來裳凸,每個對象都發(fā)送 awakeFromNib 消息贱鄙,然后應(yīng)用程序?qū)ο缶烷_始檢查是否有事情發(fā)生。具體流程如下:

流程

當應(yīng)用程序接收到鼠標鍵盤發(fā)送的事件后姨谷,窗口服務(wù)器將事件數(shù)據(jù)放到合適的應(yīng)用程序事件隊列中,如下圖:

窗口服務(wù)器的職責

檢查事件隊列的過程及動作組成了整個主程序的事件循環(huán)映九。

PS: 當用戶選擇從菜單中退出時梦湘,NSApp 接收到一個消息,終止進程,應(yīng)用程序的所有對象被銷毀捌议。

2哼拔、NSUndoManager

NSUndoManager 在 App 中相對來說還是用的不多,在使用 NSUndoManager 時瓣颅,可以非常精確的在程序中添加撤銷功能倦逐。當添加、刪除對象時宫补,撤銷管理器跟蹤這些撤銷動作產(chǎn)生的消息檬姥;當撤銷時,撤銷管理器也將跟蹤 redo 這些動作鎖產(chǎn)生的消息粉怕。撤銷機制使用 NSInvocation 對象的兩個棧健民。

NSInvocction 就是就是將消息(包括 selector、receiver 和 所有的參數(shù))包裝成的一個對象贫贝。

- (void)forwardInvocation: (NSInvocation *)invocation;

需要清晰的了解 Go Next Two Links:

#######窗口和 undo 管理器
視圖可以添加編輯操作到 Undo 管理器秉犹。
例如,NSTextView 就能把用戶 所做的每一個修改放到 undo 管理其中稚晚。文本視圖可以通過 Delegate 知道其使用的 undo 管理器:

 - (nullable NSUndoManager *)undoManagerForTextView:(NSTextView *)view;
3崇堵、自動保存文檔

為支持自動保存機制, NSDocument 子類需要重載 autosavesInPlace 方法并設(shè)置為 YES客燕, 從而實現(xiàn)文檔的自動保存筑辨。

+  (BOOL)autosavesInPlace {
      return YES;
}

其實現(xiàn)在一般創(chuàng)建一個子類,都會默認帶有這個方法的幸逆。

4棍辕、視圖層次
某個例子視圖層次

任何視圖都應(yīng)該有其子視圖,但其實大多數(shù)卻沒有还绘,但通常下面 5 個視圖都有子視圖楚昭。

  • 窗口的 Content View
  • NSBox
  • NSScrollView
  • NSSplitView
  • NSTableView

了解這五個視圖之后,感覺也就對Mac 視圖有了整體印象拍顷。

- (NSView *)superview;
- (NSArray<NSView *> *)subviews;
- (NSWindow *)window;

常用的 NSView 還是很熟悉的抚太。。昔案。

5尿贫、某些表格
可能支持的表示符
一些常用到的屬性設(shè)置的全局變量

PS: 我看的是第四版,愕然發(fā)現(xiàn)這本書中好多方法都已經(jīng)被放棄了.....

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末踏揣,一起剝皮案震驚了整個濱河市庆亡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌捞稿,老刑警劉巖又谋,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拼缝,死亡現(xiàn)場離奇詭異,居然都是意外死亡彰亥,警方通過查閱死者的電腦和手機咧七,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來任斋,“玉大人继阻,你說我怎么就攤上這事》峡幔” “怎么了瘟檩?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長锦积。 經(jīng)常有香客問我芒帕,道長,這世上最難降的妖魔是什么丰介? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮哮幢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘橙垢。我一直安慰自己,他們只是感情好柜某,可當我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布嗽元。 她就那樣靜靜地躺著,像睡著了一般喂击。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上翰绊,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天,我揣著相機與錄音监嗜,去河邊找鬼谐檀。 笑死,一個胖子當著我的面吹牛裁奇,可吹牛的內(nèi)容都是我干的桐猬。 我是一名探鬼主播框喳,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼厦坛,長吁一口氣:“原來是場噩夢啊……” “哼乍惊!你這毒婦竟也來了放仗?” 一聲冷哼從身側(cè)響起润绎,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤诞挨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后惶傻,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡涂佃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年蜈敢,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抓狭。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡否过,死狀恐怖午笛,靈堂內(nèi)的尸體忽然破棺而出苗桂,到底是詐尸還是另有隱情,我是刑警寧澤誉察,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站持偏,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏酌畜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一桥胞、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧贩虾,春花似錦、人聲如沸伊群。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽咽袜。三九已至,卻和暖如春询刹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背范抓。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工匕垫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留僧鲁,地道東北人象泵。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像春寿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子绑改,可洞房花燭夜當晚...
    茶點故事閱讀 43,514評論 2 348

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