如何等待Mac OS X应用程序完全激活

时间:2012-10-25 14:15:31

标签: macos cocoa macos-carbon

我的应用程序是一个调试器,当用户在代码中从一行切换到另一行时,我需要经常在目标应用程序和我的调试器应用程序之间切换活动进程。我目前正在使用SetFrontProcessWithOptions(…, kSetFrontProcessFrontWindowOnly)调用来完成此操作。

我遇到的问题是SetFrontProcessWithOptions()调用在应用程序完全激活之前返回。当进程成为活动进程但在其主窗口被提前并激活之前,SetFrontProcessWithOptions()返回。如果我再次快速调用SetFrontProcess来重新激活我的调试器应用程序,则Mac OS X会变得混乱,并且窗口的分层会变得混乱。在视觉上,错误的窗口似乎处于活动状态,键盘和菜单焦点指向看似非活动的窗口。

我在调用GetFrontProcess()进行轮询后尝试使用SetFrontProcessWithOptions(),但GetFrontProcess()会立即返回我的代码已使用SetFrontProcessWithOptions()激活的PSN,即使该进程的窗口不是尚未完全激活。

是否有人知道如何确定应用程序何时完全处于活动状态且主窗口已准备好接收键盘输入?

0 个答案:

没有答案