私が書いているアプリケーション(http://code.google.com/p/blazingstars/issues/detail?id=25)で問題が発生しています。ここで、私のプログラムは、を使用するメニューレット(メニューバー)アプリケーションです。別のプログラムと対話して制御するためのアクセシビリティAPI。API通知の登録や、API呼び出しによるウィンドウリストの取得など、通常のことを行いますが、プログラムが対話している後、プログラムが2番目のスペース(仮想デスクトップ)で開始された場合、少し前に気づきました。 withは最初に開始されますが、ターゲットに関する情報にアクセスできないため、プログラムがクラッシュして書き込みます。(私が見逃しているその問題を回避する方法はありますか?)
簡単な解決策は、正しいスペースでプログラムを再起動するようにユーザーに求めるダイアログをポップアップすることですが、NSWorkspaceまたはAccessibility APIのいずれかを使用して、ターゲットがどのスペースにあるかを判断する方法がわかりません。 、私がいるスペースと比較できるように。何かアイデアはありますか?
コレクションの動作をNSWindowCollectionBehaviorCanJoinAllSpacesに設定しても、起動時に多くの作業を行う必要があるため、何の役にも立ちません。そのため、最初からターゲットと同じスペースにいる必要があります。