Mac OS X - 获取空格键的状态
Posted
技术标签:
【中文标题】Mac OS X - 获取空格键的状态【英文标题】:Mac OS X - Get state of spacebar 【发布时间】:2013-04-15 12:59:30 【问题描述】:在 Mac 上,我如何知道键盘上的某个键是按下/向下还是未按下/向上?现在我需要它作为空格键,但适用于任何键的答案将是完美的。
我不想检测这些事件:
-(void)keyDown:(NSEvent*)event;
-(void)keyUp:(NSEvent*)event;
我想要某个时刻某个键(空格键)的状态。
在 Windows 上,这似乎是可能的(虽然我还没有尝试过),代码如下:
GetAsyncKeyState(VK_SPACE);
但我还没有找到适用于 Mac 的解决方案。
【问题讨论】:
【参考方案1】:我找到了答案here。这是我使用的工作 sn-p:
#include <Carbon/Carbon.h>
Boolean isPressed( unsigned short inKeyCode )
unsigned char keyMap[16];
GetKeys((BigEndianUInt32*) &keyMap);
return (0 != ((keyMap[ inKeyCode >> 3] >> (inKeyCode & 7)) & 1));
inKeyCode
代表你想知道它是否被按下的键。可以在 Mac 上的以下文件中找到键到 unsigned short
s 的映射:
/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Headers/Events.h
【讨论】:
以上是关于Mac OS X - 获取空格键的状态的主要内容,如果未能解决你的问题,请参考以下文章
如何检查 PostgreSQL 服务器 Mac OS X 的状态
等同于 Mac OS X 中 Windows 的命名互斥锁? [复制]