5

わかりました、修飾キーが押されたかどうかを NSEvent から判断する方法を理解しています:

if ([theEvent modifierFlags] & NSAlternateKeyMask) {
        // The Option/Alt key was pressed
    }

ただし、これはオプション キーと別の修飾キー (たとえば、Option+Shift、またはオプション キーとの任意の組み合わせ) も同時にキャプチャします。

オプションキーだけをテストするにはどうすればよいですか?

4

2 に答える 2

4

あなたも試すことができます

NSUInteger modFlags = [theEvent modifierFlags];
if ((modFlags & NSCommandKeyMask) && !(modFlags & ~NSCommandKeyMask))
{
    // Only alt was pressed
}
于 2012-02-05T00:06:07.843 に答える
4

このような:

const NSUInteger kNotAlt = NSAlphaShiftKeyMask | NSShiftKeyMask | NSControlKeyMask | NSCommandKeyMask;
NSUInteger modFlags = [theEvent modifierFlags];
if (((modFlags & NSAlternateKeyMask) != 0) &&
    ((modFlags & kNotAlt) == 0))
{
    // Only alt was pressed
}
于 2012-02-04T15:49:17.480 に答える