Objective-C/ cocoa : Detect all keypresses

标签 objective-c macos cocoa keypress

是否可以在用户每次按键时运行一个方法。基本上,我想在按下某个键时发出类似 iPhone 或 iPad 上的声音。 我不想在我的窗口或某个控件中检测按键,我想检测所有按键(例如当他们在 Safari 或其他东西中输入时)。我不需要知道什么关键是。

谢谢

最佳答案

使用此处记录的 CGEventTapCreate:

https://developer.apple.com/library/mac/#documentation/Carbon/Reference/QuartzEventServicesRef/Reference/reference.html

或使用此处记录的 NSEvents addGlobalMonitorForEventsMatchingMask:handler::

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/nsevent_Class/Reference/Reference.html

NSEvent 示例:

[NSEvent addGlobalMonitorForEventsMatchingMask:(NSKeyDownMask) handler:^(NSEvent *event){
    [self keyWasPressedFunction: event];
    //Or just put your code here
}];

我会说 NSEvents 更容易......

注意:

出于安全原因,Apple 要求您在“系统偏好设置”中打开“启用对辅助设备的访问”,以便使用上述方法。

关于 Objective-C/ cocoa : Detect all keypresses,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10369008/

相关文章:

xcode - SFML Mac 应用程序中格式错误的 Freetype 框架

python - 如何设置使用哪个版本的python sublime text

objective-c - 接受 iPhoto 或 Aperture 的拖放

objective-c - 自身窗口为空,但窗口导出已正确链接

XCode 编号及其本地化值

ios - 当向 Core Data NSManagedObject 关系的 NSSet 添加或删除项目时,如何触发通知?

ios - XCode 6 中两个按钮可以相互接触吗?

iphone - 如何通过 POST 以正确的方向发送图片

cocoa - 为什么 NSView 的框架方法返回错误的结果?

iphone - 在导航栏下添加搜索栏?