覚え書き。
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 などに手を出してハマるところだった。

 

