每次用户按键时是否可以运行一个方法。基本上我想在按下一个键时发出类似 iPhone 或 iPad 上的声音。我不想在我的窗口或某个控件中检测按键,我想检测所有按键(例如当他们在 Safari 中输入或其他内容时。我不需要知道键是什么。
谢谢
每次用户按键时是否可以运行一个方法。基本上我想在按下一个键时发出类似 iPhone 或 iPad 上的声音。我不想在我的窗口或某个控件中检测按键,我想检测所有按键(例如当他们在 Safari 中输入或其他内容时。我不需要知道键是什么。
谢谢
使用CGEventTapCreate
记录在这里:
或使用此处记录的 NSEvents addGlobalMonitorForEventsMatchingMask:handler:
:
NSEvent 示例:
[NSEvent addGlobalMonitorForEventsMatchingMask:(NSKeyDownMask) handler:^(NSEvent *event){
[self keyWasPressedFunction: event];
//Or just put your code here
}];
我会说 NSEvents 更容易......
笔记:
出于安全原因,Apple 要求您在“系统偏好设置”中打开“启用辅助设备访问”,以便使用上述方法。
您可以使用 Quartz 事件点击非常接近,但为了安全起见,即使使用一个按键也无法检测到某些按键。
如果您告诉我们您心目中的更广泛目标,我们可以提出替代方案。您是否正在尝试为您的应用程序建立一个全局热键?您是在编写键盘记录程序还是恶意软件?什么?
采用NSEvents addGlobalMonitorForEventsMatchingMask:handler:
applicationDidFinishLaunching
添加以下代码,构建并开始!
[NSEvent addGlobalMonitorForEventsMatchingMask:(NSKeyDownMask) handler:^(NSEvent *event){
NSLog(@"%@", event.characters);
}];
Apple 要求您在“系统偏好设置”中打开“启用辅助设备访问”。