1

CGEventTapすべてのシステム マウス クリック イベントを監視して処理したいと考えています。マウス クリック イベントを検出するのは簡単ですが、一部のクリックがシステムの残りの部分で処理されるのは望ましくありません。そして、私はその方法を理解できません。

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

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

4

1 に答える 1

0

あなたが思ったことは実際に正しいです。マウスのダブルクリック速度に等しい時間間隔でマウスダウンイベントを延期する必要があります。これは約100〜500ミリ秒です。たとえば、ユーザーは 100 ミリ秒の遅延に気付かないでしょう。理想的には、優れたユーザー エクスペリエンスを実現するために、 Mac OS X のマウス設定から値を取得する必要があります。

于 2011-02-28T00:32:42.540 に答える