2

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

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

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

有谁知道一种方法来确定应用程序何时完全激活,其主窗口准备好接收键盘输入?

4

0 回答 0