2011-06-23 9 views
1

私は比較的ココア開発を始めました。私はSnow Leopardで開発中です。私はシナリオを念頭に置いており、APIがそれをサポートしているかどうか不思議です。私はそれについて何かを見つけることができなかったので、私はそれが不可能と仮定します。しかし、私は間違っていると証明されてうれしいです。Cocoaの他のアプリケーションでのウィンドウの位置を制限しますか?

メニューバーのすぐ下にある画面の上部にあるアプリケーションを作成するとします。窓が浮かぶので、常に上にあります。これは迷惑なことがあるので、私が気づいたことの1つは、他のウィンドウ(特に他のアプリケーションのウィンドウ)を自分のアプリケーションの下に置くことでした。 APIに、私がそれを可能にする何かがありますか?すべてのウィンドウの最大原点を指定するには(私以外は)?

ありがとうございました。

答えて

1

実際にこれを行う方法はありません。あなたはAccessibility APIを使って同様の何かを達成することができます。あなたは窓移動通知を監視し、窓を可視領域に戻さなければならないでしょう。

+0

私はアップルに連絡して終了し、彼らは同じことを言った。アクセシビリティAPIを使用します。同様のものを考慮している人のためのメモとして、システム環境設定でアクセシビリティAPIを無効にすることができるので、これは普遍的な解決策ではありません。 AppleScriptを使用して明らかにそれを行う方法がありますが、私はそれをあまり見ていません。より良い選択肢としてアクセシビリティAPIが推奨されました。 – user812376

+0

ありがとうございました! – user812376

+0

@ user812376:問題ありません。 AppleScriptについて:ウィンドウを移動するのに使うことができますが、他のアプリケーションのウィンドウを見る時間を知るための実用的な方法はありません。私が他のアプリケーションのウィンドウを見るために知っている唯一のオプションは、アクセシビリティとウィンドウサーバーのハッキングです。 – Chuck

0

私はあなたがそうすることはできないと考えています。ウィンドウのベースUIのクールなことの1つは、デスクトップmetaforeで他のものの上にWindowsをスタックできるということです。

これで、NSWindowレベルとしてNSScreenSaverWindowLevelを使用して、常にトップウィンドウにすることができます。あなたができる素晴らしいトリックは、[window setLevel:NSScreenSaverWindowLevel + 1]であり、スクリーンセーバーレベルの上にあなたのウィンドウを設定します。

関連する問題