OSX で HUD タイプのオーバーレイをプログラミングするにはどうすればよいですか。別のアプリケーションのウィンドウ上の特定のポイントにテキストを表示するアプリケーションを作成できるようにしたいと考えています。
したがって、(他のアプリケーション) ウィンドウが移動すると、HUD 部分は他のウィンドウの同じ座標に留まります。
OSX で HUD タイプのオーバーレイをプログラミングするにはどうすればよいですか。別のアプリケーションのウィンドウ上の特定のポイントにテキストを表示するアプリケーションを作成できるようにしたいと考えています。
したがって、(他のアプリケーション) ウィンドウが移動すると、HUD 部分は他のウィンドウの同じ座標に留まります。
ウィンドウ自体には、オーバーレイされた要素を描画するための独自のカスタム ビューを備えた、境界線のない透明なウィンドウ (多くの例) を使用します。
「他のアプリケーションのウィンドウ」の部分については、これをスムーズに行うためのパブリック API はありません。ユニバーサル アクセスとそのウィンドウの場所/ナビゲーション API を使用しますが、ユーザーは「補助デバイスのアクセスを有効にする」を有効にする必要があります (プログラムで行うことはまだできないと思います)。ウィンドウが移動したときに「知らせる」とは思いませんが、間違っている可能性があります。もしそうなら、それは「今ここにいる」というワンショットである可能性が高いため、オーバーレイが追いつかない可能性があります. また、特定のウィンドウ/シート/パレットの「上」にいることを確認できる「ウィンドウレベル」が得られるとは思いません。
他の唯一のオプション (他のアプリのウィンドウと一緒に移動する) は、アプリケーション エンハンサーのようなシステム全体にわたる侵襲的なハックです (これは非常に物議を醸しています)。これを間違えて、ユーザーのシステムを不安定にするのは簡単です (そのため、論争が起きています)。
ウィンドウを追跡するために文書化されていない CoreGraphics 関数を使用できます。http://code.google.com/p/undocumented-goodness/source/browse/trunk/CoreGraphics/CGSPrivate.hを参照してください。