| 置頂
| Cocoa 文集聲明與閱讀導(dǎo)向
前言
一、匆匆一閱
應(yīng)用(NSApp)獲得鍵盤事件(Key Event)之后琴许,最多會使用四個流程來處理該事件。假如一個流程接受了該事件罐监,那么就意味著完成該事件的響應(yīng)梳庆。
二、正文
鍵盤事件被分為四種操作鳞溉,按次序?qū)ふ液线m的操作瘾带。
先上圖:
1、修飾鍵+字符鍵(Key equivalents)
A key equivalents is a character bound to some view in a window.
就是修飾鍵加字符鍵熟菲。
修飾鍵包括:CapsLock看政、Shift、Control抄罕、Option允蚣、Command、NumericPad呆贿、Help嚷兔、Function∽鋈耄可以在NSEventModifierFlags中找到冒晰。
應(yīng)用遍歷關(guān)鍵窗口(Key Window)中每一個對象的performKeyEquivalent
方法,直到有一個對象返回YES母蛛。如果沒有一個對象返回YES翩剪,就會發(fā)送給菜單欄(menu bar),或一些Cocoa對象彩郊。例如NSButton前弯,NSMenu,NSMatrix和NSSavePanel秫逝。這些類都提供了默認的處理實現(xiàn)恕出。
注意:從OS X v10.5開始,如果key equivalents沒有被識別出來违帆,就會發(fā)送給NSWindow調(diào)用第一響應(yīng)者的NSKeyDown事件浙巫。同時在處理控制類的按鍵時(Control-Key)會先發(fā)送給NSWindow的performKeyEquivalent,這樣做的目的是使Control鍵更多為menu服務(wù)。
2的畴、界面控制鍵(Keyboard interface control)
關(guān)鍵窗口(Key Window)將此類鍵轉(zhuǎn)譯為控件事件渊抄。例如:Tab建或者Shift-Tab鍵 轉(zhuǎn)譯為 焦點下一個、焦點上一個丧裁;空格 轉(zhuǎn)譯為按鈕的點擊事件护桦;
視圖之間的順序是通過視圖的
unowned(unsafe) var nextKeyView: [NSView]? { get set }
方法來設(shè)置的。
3煎娇、行為鍵(Keyboard action)
由NSResponder類中的一些方法進行處理二庵。例如keyDown、KeyUp缓呛。
4催享、用于輸入的字符(Character or characters for insertion as text)
輸入到輸入框
三、傳送門
筆者相關(guān)文檔
Cocoa應(yīng)用接收外設(shè)事件的過程