cocoa - NSEvent:仅测试一个 modfierkey

标签 cocoa nsevent modifier-key

好的,我了解如何从 NSEvent 确定是否按下了修饰键:

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

但这也会同时捕获选项键和另一个修饰键,例如 Option+Shift,或与选项键的任意组合。

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

最佳答案

像这样:

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

关于cocoa - NSEvent:仅测试一个 modfierkey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9141556/

相关文章:

ios - 在什么条件下[NSEvent字符]可以是长度大于1的NSString?

c# - 如何通过代码按住Ctrl键

objective-c - NSEvent addGlobalMonitorForEventsMatchingMask 不适用于 CLI 应用程序

macOS 应用程序 : handling key combinations bound to global keyboard shortcuts

java - KeyEvent 监听器中的多个键

Qt:使用 Modkey(Shift、CTRL 等)检测双击

cocoa - NSScrollView 和 lion ..是否可以在滚动时仅显示滚动条

objective-c - 在 CocoaPods 项目中使用@import

cocoa - NSOpenGLContext 用于非绘图目的

cocoa - 如何存储和检索自定义类