C 如何在OSX上使用I/O框架识别按下的键

C 如何在OSX上使用I/O框架识别按下的键,c,macos,keyboard-events,hid,iokit,C,Macos,Keyboard Events,Hid,Iokit,我正在尝试使用I/O工具包框架来识别用户何时按键以及何时释放按键。我找到了:,但有了这个代码,我只能知道“扫描代码”和按下键的时间,因此我无法知道哪个字符对应“扫描代码”。我发现的唯一解决方案是,我必须写一个巨大的switch语句,就像这样 switch(scancode) { case 4: printf("a") case 40: printf(" ") case ...: printf(...) 但我相信有更好的解决办法。我

我正在尝试使用I/O工具包框架来识别用户何时按键以及何时释放按键。我找到了:,但有了这个代码,我只能知道“扫描代码”和按下键的时间,因此我无法知道哪个字符对应“扫描代码”。我发现的唯一解决方案是,我必须写一个巨大的switch语句,就像这样

switch(scancode) {
case 4:
    printf("a")
case 40:
    printf(" ")
case ...:
    printf(...)

但我相信有更好的解决办法。我试着阅读苹果关于I/O工具包中隐藏的指南,但我没有找到解决方案。。。有人知道如何解决这个问题吗?

我在某个地方读到,MLX(小型图形库)有某种钩子可以抓住您键入的键您的高级目标是什么?可能有更好的方法。例如,您可能可以使用Cocoa事件监视器或石英事件抽头。我不能使用Cocoa事件监视器,因为它是用Objective-C编写的,而不是我用C编写的。我将读取石英事件抽头是什么。然而,我的目标是知道用户按下哪个字母作为音乐家键盘使用(例如“a”对应于音符C)。juleslasne,我不知道我是否可以使用图形库,因为现在我的应用程序是命令行的..我看到Quartz事件也是图形库的一部分。。。如果我的应用程序是命令行的,是否可以使用它们?