我有一种感觉,我知道这个问题的答案,但在任何地方都很难确认它。有没有可能在Catalina后获得原始的键盘和鼠标输入,而不需要在安全和隐私首选项中的“输入监控”访问?

我以前从未在macOS上编写过游戏引擎,但据我所知,游戏获取原始鼠标增量和原始键盘状态的“通常”方法是使用IOKit的HID API。在recently之前,这显然也是从Xbox和Playstation游戏手柄获取输入的唯一途径。
当我尝试使用IOKit HID API获取鼠标和键盘输入时,我收到一个提示,要求允许在安全和隐私首选项中进行输入监视。在互联网上的其他地方,我了解到这是由于macOS Catalina的一个变化:要使用IOKit HID输入处理,您现在需要输入监控权限。就我而言,我的游戏要求用户打开这个功能,这是一个破坏交易的因素。
我对这种情况的理解正确吗?如果是,在没有input Monitoring权限的情况下,是否无法获得原始(未处理的)键盘和鼠标输入?我的意思是,我可以使用mouseMoved:事件和类似的东西来破解FPS风格的鼠标输入的解决方案,但这样的解决方案将不允许亚像素精度,并且会使我的游戏受到macOS的光标加速的影响。游戏/游戏引擎有没有其他的解决方案?
发布于 2020-12-22 17:16:58
如果你愿意接受macOS 11的要求,苹果似乎在游戏控制器框架中添加了原始的键盘和鼠标支持。似乎甚至支持大写锁定。
https://developer.apple.com/documentation/gamecontroller/gckeyboardinput?language=objc
https://stackoverflow.com/questions/65132331
复制相似问题