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