2

現在のマウス位置を (システム全体で) 保存し、(後で) その保存されたポイントにマウスを置く最良の方法は何ですか?

[NSEvent mouseLocation]位置を取得し、 でマウスを動かすことができますCGEventMouseMovedが、それぞれ異なる座標系を使用しています (NSEvent の場合は y=0 が上で、CGEvent の場合は下であると思います)。

画面の高さをキャプチャし、それを使用して2つの間で変換することの堅牢性について心配しています-またはこれが最善のアプローチですか?

4

2 に答える 2

1

NSEvent の代わりにCGEventTapを使用してマウス イベントを取得できます。次に、イベントが到着したときに反転するか反転しないかを選択できます。

(私は y=0 が NSEvent の上部であり、CGEvent の下部であると信じています)。

あなたはそれを間違った方法で持っています。Quartz は、y=0=top である反転を使用します。AppKit は、y=0=bottom である unflipped を使用します。(編集:イベントの場合、つまり、描画APIであるQuartz 2Dは、AppKitと同じように反転されていない座標を使用します。)

于 2010-01-24T16:34:18.563 に答える
0

はい、メイン画面の高さを使用することは、画面座標を反転する標準的な方法です。

于 2010-01-24T16:23:47.540 に答える