我需要检测用户按下的所有键。使用-keyDown:
我可以获得大多数按键(字母数字,功能键,箭头,空格键,转义,返回),但单独按下时我无法获得任何修改键。
如何检测绝对任何按键,包括修改键?
答案 0 :(得分:3)
试一试:
[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;
}];
答案 1 :(得分:2)
flagsChanged:方法可用于检测按下修改键而无需同时按下任何其他键。例如,如果用户单独按下Option键,则响应者对象可以在flagsChanged的实现中检测到:。