检测 OS X 上的任何按键,包括修改键 [英] Detect any key press, including modifier keys, on OS X

查看:17
本文介绍了检测 OS X 上的任何按键,包括修改键的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要检测用户按下的所有键.使用 -keyDown: 我可以得到大多数按键(字母数字、功能键、箭头、空格键、escape、return),但是单独按下时我无法得到任何修饰键.

I need to detect all the keys that the user presses. Using -keyDown: I can get most key presses (alphanumeric, function keys, arrows, space bar, escape, return), but I cannot get any modifier key when it's pressed alone.

如何绝对检测到任何击键,包括修饰键?

How do I detect absolutely any keystroke, including modifier keys?

推荐答案

试试看:

[NSEvent addLocalMonitorForEventsMatchingMask:NSKeyDownMask|NSFlagsChangedMask handler:^NSEvent *(NSEvent *incomingEvent) {
    if (incomingEvent.type == NSFlagsChanged && (incomingEvent.modifierFlags & NSDeviceIndependentModifierFlagsMask)) {
        NSLog(@"modifier key down");
    } else if (incomingEvent.type == NSKeyDown) {
        NSLog(@"other key down");
    }

    return incomingEvent;
}];

这篇关于检测 OS X 上的任何按键,包括修改键的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆