Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何使用Cocoa/Quartz读取Num Lock的状态?_Objective C_Macos_Cocoa_Osx Mountain Lion_Quartz Graphics - Fatal编程技术网

Objective c 如何使用Cocoa/Quartz读取Num Lock的状态?

Objective c 如何使用Cocoa/Quartz读取Num Lock的状态?,objective-c,macos,cocoa,osx-mountain-lion,quartz-graphics,Objective C,Macos,Cocoa,Osx Mountain Lion,Quartz Graphics,我需要读取Num Lock key的当前状态,而不是实际按下它。 我使用了下面的(在Quartz中)成功地实现了这一点,但对Caps Lock进行了此操作,因为我找不到Num Lock的等效掩码 我还使用了maskkCGEventFlagMaskNumericPad,认为它与num lock等效,但不起同样的作用 有没有办法在Quartz/Cocoa中异步读取状态 我使用的是Mountain Lion 10.8.4。NumLock似乎没有标准的键代码,也没有文档化的修改标志。您可以尝试在激活之前

我需要读取Num Lock key的当前状态,而不是实际按下它。 我使用了下面的(在Quartz中)成功地实现了这一点,但对Caps Lock进行了此操作,因为我找不到Num Lock的等效掩码

我还使用了mask
kCGEventFlagMaskNumericPad
,认为它与num lock等效,但不起同样的作用

有没有办法在Quartz/Cocoa中异步读取状态


我使用的是Mountain Lion 10.8.4。

NumLock似乎没有标准的键代码,也没有文档化的修改标志。您可以尝试在激活之前和之后手动观察所有当前修饰符值的值,以查看事件子系统是否知道它。@CodaFi,注释为thanx;)我会尝试这种方式,我不认为OSX有真正的Num-Lock状态。在带有数字键盘的全键盘上,无法使这些键不产生数字。你不能让它们表现为箭头、翻页、主页等。所以,就好像Num Lock一直处于启用状态一样。在一些笔记本电脑键盘上,有一种模式可以将主键盘的一部分变成数字键盘,但这种情况发生在应用程序可见的级别以下。可能纯粹是硬件方面的问题。它只是让这些按键产生按键代码,就好像它们是全键盘的键盘一样。FWIW,带有数字键盘的苹果键盘没有Num Lock键。Thanx all,似乎Num Lock在Mac中没有任何意义,或者根本没有出现;)我只是想找到Windows/Linux的
GetKeyState
XGrabKey\ux
的等价物。如果在OSX中没有简单的方法或者没有意义,那么我就不这样做了。无论如何,这似乎不是一件跨平台的事情@l'l,thanx,我来试试;)
bool status = (CGEventSourceFlagsState(kCGEventSourceStateCombinedSessionState) 
               & kCGEventFlagMaskAlphaShift);