覚え書き。
shiftキー、commandキー、optionキーの状態を取得する。これらのキーは Modifier key と呼ばれていて NSEvent から取得できる。
こんな感じ。
NSUInteger modifierFlags = [[NSApp currentEvent] modifierFlags]; if (modifierFlags & NSShiftKeyMask) { // Shift key is ON :
Mac Dev Center: NSEvent Class Reference ーmodifierFlags
Mac OS X v10.6 からは NSEvent にクラスメソッドが追加されていてもっと簡単に取れる。
NSUIneger modifierFlags = [NSEvent modifierFlags];
Mac Dev Center: NSEvent Class Reference - modifierFlags
NSResponder には Modifier key のON/OFFイベントを処理するメソッドが用意されている。
- (void)flagsChanged:(NSEvent *)theEvent { : if (modifierFlags & NSShiftKeyMask) { // Shift key is ON : } else { // Shift key is OFF : } }Mac Dev Center: NSResponder Class Reference - flagsChanged :
- - - -
こんなに簡単に取れるとは思わなかった。Quartz Event などに手を出してハマるところだった。