2011-02-15 6 views
1

私はCGEventTapを持っています。私はすべてのシステムマウスクリックイベントを観察して処理したいと思います。マウスのクリックイベントを検出するのは簡単ですが、システムの残りの部分でクリックが処理されることは望ましくありません。そして、私はどのように把握することはできません。Quartzイベントを使用してマウスクリックを処理するにはどうすればよいですか?

システムは、mouseUp,mouseDownmouseDraggedなどの低レベルイベントのみを送信します。 mouseDownイベントを受け取ったとき、私はまだそれがマウスクリックの一部であるかどうかわかりませんが、ドラッグイベントになる可能性があります。次のイベントが発生するのを待つ必要があります。mouseUpの場合、クリックがあります。しかし、自分自身でクリックを処理し、残りのイベントキューを去らないようにしたい場合は、mouseDownが既に送信されているので、mouseUpイベントを単に盗むことはできません。

私はmouseDownイベントを遅らせるのみ対応mouseUpを受けた後、後でそれを送ったが、それは間違っていると感じることができ、私はすべてのシステムにという理由だけで自分のアプリケーションのmouseDownイベントを遅らせたくないと思いました。何か不足していますか?

+1

なぜあなたは何か不足していると思われますか?あなたはこれをすることができると思いますか? – hooleyhoop

+0

私はすべてのシステムマウスイベントを監視して変更する簡単な方法があると思います。私はこのように重要なイベントを観察してフィルタリングすることはできますが、単純なマウスクリックで同じことをすることは不可能であるというのは奇妙なことです。 – zoul

答えて

0

実際にあなたが思っていたことは、実際には正しいです。 double click speedというマウスの時間間隔の間、マウスダウンイベントを延期する必要があります。これは100〜500ミリ秒程度にする必要があります。たとえば、ユーザーは100ミリ秒の遅延に気付かないでしょう。理想的には、Mac OS X mouse settingsの価値があり、優れたユーザーエクスペリエンスを実現する必要があります。

関連する問題