处于 Xcode 断点时没有键盘响应 (Mac)

gre*_*reg 6 macos xcode breakpoints

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

还有其他人看过这个吗?

我正在运行 10.10.1 和 Xcode 6.1。

gre*_*reg 4

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

键盘输入在 NSOpenPanel 调用之外的断点处表现正常。在完成此代码区域之后,我观察到我的后续操作(从完成块在后台排队)通常在 NSOpenPanel 完全拆除(从屏幕上消失)之前完成。我的假设是,直到 NSOpenPanel 从屏幕上删除(也许更晚),Powerbox 不会释放对键盘的控制。

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

我通过利用打印语句并在打开变量检查器的情况下逐步执行代码来解决调试问题。鼠标输入继续起作用,因此您可以右键单击变量(如果您有两键鼠标)并至少打印其描述。

感谢肯的帮助。

更新 我现在使用dispatch_after延迟执行任何NSOpenPanel后操作。在我的系统上,延迟 1 秒就可以了。我真的不喜欢添加任意延迟,但这似乎有效。