我知道如何检测按键。除Control,Alt,Shift和CMD之外的所有键。
如何检测何时按下此键。
提前致谢。
答案 0 :(得分:4)
如果要在NSView
对象之类的内容中检测这些键,请查看NSResponder
类。当您覆盖NSView
课程(或其中一个子课程)时,您可以覆盖keyDown:(NSEvent *)theEvent
(Apple Documentation)。当您致电[theEvent modifierFlags]
时,会返回NSUInteger
位域,然后您可以对其进行评估。
例如,有
if ([theEvent modifierFlags] & NSCommandKeyMask) {
...
}
您可以检查是否按下了Command键。
有关详细信息,请参阅Apple的Cocoa Event-handling Guide,尤其是“处理关键事件”部分。
答案 1 :(得分:3)
in
- (void) flagsChanged: (NSEvent *)theEvent
[theEvent keyCode]
为CRTL
,SHIFT
,ALT
等提供了一个数字,因此您只需要为这些修饰符切换变量,设置为{{1}在开始时。
如果您使用OpenGL,则可能需要设置:
0