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

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

问题描述

我需要检测用户按下的所有键。使用 -keyDown:我可以得到大多数按键(字母数字,功能键,箭头,空格键,转义,返回),但我不能得到任何修改键, 。

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天全站免登陆