按下捕获修改键(Control,Alt,Shift o CMD)

Jor*_*hez 5 keyboard macos objective-c

我知道如何检测按键.除Control,Alt,Shift和CMD之外的所有键.

如何检测何时按下此键.

提前致谢.

goe*_*etz 4

如果您想在对象之类的东西中检测这些键NSView,请查看该类NSResponder。当您覆盖一个NSView类(或其子类之一)时,您可以覆盖keyDown:(NSEvent *)theEvent(Apple 文档)。当您调用 时[theEvent modifierFlags]NSUInteger将返回一个位字段,然后您可以对其进行求值。

例如,与

if ([theEvent modifierFlags] & NSCommandKeyMask) {
   ...
}
Run Code Online (Sandbox Code Playgroud) 您可以检查是否按下了 Command 键。

请参阅 Apple 的Cocoa 事件处理指南,特别是“处理关键事件”部分以获取更多信息。

  • 当按下修饰键时,这不会捕获它们。这只会让您知道按下普通键时按下的是哪个修饰键。 (2认同)