在OS X到达应用程序之前调试其中的关键事件流

时间:2012-01-22 17:07:42

标签: macos keyboard dtrace

我有一位用户在OS X上的应用中报告某个特定键击不起作用(control-apostrophe)。这对他在其他计算机上有效。

我添加了一些日志记录,我的应用程序从未收到keyDown的NSEvent
禁用辅助设备的通用访问也无法解决问题。
系统首选项中的键盘快捷键中没有任何内容使用该快捷键。
有没有办法通过操作系统跟踪击键的路径,找出我的应用程序没有得到它的原因?这是dtrace能做的吗?

1 个答案:

答案 0 :(得分:0)

这是一个老问题,但对于任何需要这样做的人,我都会给出答案。我不打算通过常规方法来追踪一个糟糕的kb快捷方式,但你必须确保你没有在系统服务,键盘大师,水银和所有这些应用中设置它允许kb定制。先检查一下。如果您没有通过sys首选项设置大量kb快捷方式,则可能需要考虑删除plist文件并让系统默认返回到新状态。搜索com.apple.symbolichotkeys.plist并删除它。如果这不能解决您的问题,或者您不想删除plist,请从终端运行dtrace' s iosnoop命令。这只会抛弃一切正在进行的事情。按键和^ c停止输出并检查输出。您可以将其输出到文本文件并在其上执行一些grep magic,但这应该足以朝着正确的方向前进。