在Xcode断点时无键盘响应(Mac)

人气:871 发布:2022-10-16 标签: breakpoints xcode macos

问题描述

我刚刚遇到了一个非常奇怪的场景,在其他地方找不到任何关于这方面的信息。当Xcode在我的断点处中断时,整个系统的所有键盘输入都没有响应。我可以切换到其他应用程序,但没有记录任何击键。Xcode本身对键盘输入没有响应。

其他人看到这个了吗?

我正在运行10.10.1和Xcode 6.1。

推荐答案

根据上面的评论,这个问题似乎与Powerbox的幕后细节有关。进一步解释:我的应用程序被沙箱保护,并调用NSOpenPanel。当在NSOpenPanel的完成块中中断(Xcode断点)时,我遇到系统范围的键盘输入丢失。

键盘输入在NSOpenPanel调用外部的断点中正常工作。在处理完这部分代码后,我注意到我的后续操作(从完成块在后台排队)通常在NSOpenPanel完全拆除(从屏幕上消失)之前完成。我的假设是,在NSOpenPanel从屏幕上移除之前(可能更晚),Powerbox不会释放对键盘的控制。

这在很大程度上是假设的,因为我没有实际的Powerbox代码,也无法进入其中,但它似乎符合要求。

我解决了调试问题,方法是使用打印语句并在变量检查器打开的情况下逐步执行代码。鼠标输入继续起作用,因此您可以在变量上单击鼠标右键(如果您有两个按钮的鼠标),并至少打印其说明。

谢谢你的帮助,肯。

更新 我现在正在使用DISPATCH_AFTER延迟执行我的任何NSOpenPanel后操作。在我的系统中,延迟1秒就能达到目的。我真的不喜欢随意增加延迟,但这似乎奏效了。

314