2009-09-11 7 views
9

Cocoa(またはCarbon)のすべてのアプリケーションのマウスカーソルをグローバルに非表示にする方法はありますか?あるいは、少なくともそれを何か他のものに置き換えることはできますか?Cocoa/Carbonでマウスカーソルをグローバルに非表示にしますか?

EDIT:入力みんなのおかげで、しかしダニエルJalkutは、しばらく前に解決策を見つけ判明:) http://lists.apple.com/archives/carbon-dev/2006/Jan/msg00555.html

+0

ケアを?アイテムがマウスオーバーするとカーソルが変化するという利点が失われるため、一般的には悪い考えです。 カーソルをスキンしたいと思っていますか?すなわち、それでもマウスの上で変更するが、カスタムカーソルに変更する –

答えて

2

チェックアウト:http://developer.apple.com/legacy/mac/library/samplecode/CarbonCocoa_PictureCursor/listing2.html をそれは古いサンプルだが、おそらくまだ動作します。

しかし、私はあなたがアプリケーションウィンドウに限定されると予想しています。誰もがそれを隠す場合は、おそらくウィンドウを画面に覆わせる必要があります。

おもしろい事実:古いツールボックス機能は単純に "HideCursor()"でした。

+0

ありがとう。私の画面を覆う窓を作るためのアドバイスはありますか? (クリアするには、マウスカーソルをすべてのアプリケーションのために隠しておきたい...) –

+0

フルスクリーンウィンドウを正しく処理すると、添付されているすべてのスクリーンを覆っていることを確認する必要があります。見てください:http://www.cocoadevcentral.com/articles/000028.php。また、スクリーンセーバーアプリケーション用のサンプルコードもあります。スクリーンセーバーは一般的にスクリーンもカバーします。あなたのケースでは、あなたのアプリケーションウィンドウの下のレイヤーになるようにウィンドウを変更したいでしょう。 – Seth

0

いいえ、私はあなたが望むように、フルスクリーンのウィンドウを表示して、デスクトップ上のすべてを絶対に隠すほどの方法はないと思います。それは、例えば、キーストロークは適切なアプリケーションなどに送信されます。

7

CGDisplayHideCursorは、Quartz Display Services APIの一部です。

+0

ありがとうございました。 "ほとんどの場合、呼び出し元はカーソルに影響を与えるフォアグラウンドアプリケーションでなければなりません。だから、私は*フォアグラウンドアプリケーションでなければならないのは何ですか? :) –

+0

私はここに来て、私の前景のアプリケーションでカーソルを隠す方法を探しました、そして、これはちょうどチケットでした。ありがとう! –

2

ちょうどあなたのコードにこれを追加します。あなたはこれをしたいと思います理由として、もう少し説明する

CGDisplayHideCursor (kCGNullDirectDisplay); 
関連する問題