NSEvent:只测试一个modfierkey



好的,我知道如何从NSEvent中确定是否按下了修改键:

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

但这也会同时捕获optionkey和另一个修饰符key,例如Option+Shift,或与optionkey的任何组合。

如何只测试选项键而不测试其他选项键?

像这样:

const NSUInteger kNotAlt = NSAlphaShiftKeyMask | NSShiftKeyMask | NSControlKeyMask | NSCommandKeyMask;
NSUInteger modFlags = [theEvent modifierFlags];
if (((modFlags & NSAlternateKeyMask) != 0) &&
    ((modFlags & kNotAlt) == 0))
{
    // Only alt was pressed
}

您也可以尝试

NSUInteger modFlags = [theEvent modifierFlags];
if ((modFlags & NSCommandKeyMask) && !(modFlags & ~NSCommandKeyMask))
{
    // Only alt was pressed
}

相关内容

  • 没有找到相关文章

最新更新