私のアプリケーションはデバッガーであり、ユーザーがコード内のある行から別の行に移動するときに、ターゲット アプリケーションとデバッガー アプリケーションの間でアクティブなプロセスを頻繁に切り替える必要があります。私は現在、SetFrontProcessWithOptions(…, kSetFrontProcessFrontWindowOnly)
これを達成するために呼び出しを使用しています。
私が抱えている問題はSetFrontProcessWithOptions()
、アプリケーションが完全にアクティブになる前に呼び出しが返されることです。 SetFrontProcessWithOptions()
プロセスがアクティブ プロセスになったときに戻りますが、そのメイン ウィンドウが前面に表示されてアクティブになる前です。SetFrontProcess の呼び出しが速すぎて、デバッガ アプリケーションが再アクティブ化されない場合、Mac OS X が混乱し、ウィンドウの階層化が混乱します。視覚的には、間違ったウィンドウがアクティブに見え、キーボードとメニューのフォーカスが非アクティブに見えるウィンドウに向けられます。
ポーリングGetFrontProcess()
を呼び出した後に使用しようとしましたが、そのプロセスのウィンドウがまだ完全にアクティブ化されていなくても、コードがアクティブ化された PSN をすぐに返します。SetFrontProcessWithOptions()
GetFrontProcess()
SetFrontProcessWithOptions()
メインウィンドウがキーボード入力を受け取る準備ができてアプリケーションが完全にアクティブになったときを判断する方法を知っている人はいますか?