كيفية تخزين (واستخدام) موضع الماوس الحالي؟
-
22-09-2019 - |
سؤال
ما هي أفضل طريقة لتخزين موضع الماوس الحالي (على مستوى النظام) ثم (لاحقًا) وضع الماوس في تلك النقطة المخزنة؟
[NSEvent mouseLocation]
يحصل لي على الموقف ، ويمكنني تحريك الماوس مع أ CGEventMouseMoved
, ، لكن كل منهم يستخدمون نظامًا مختلفًا لتحديدات (أعتقد أن y = 0 هو الأعلى لـ nsevent والأسفل لـ cgevent).
أنا قلق بشأن متانة التقاط ارتفاع الشاشة واستخدامها للتحويل بين الاثنين - أم أن هذا هو أفضل طريقة؟
المحلول
نعم ، يعد استخدام ارتفاع الشاشة الرئيسية الطريقة القياسية لإحداثيات شاشة التقليب.
نصائح أخرى
يمكنك استخدام أ cgeventtap للحصول على أحداث الماوس بدلاً من NSEVENT. ثم لديك اختيارك من الانقلب أو غير المتقلب في الوقت الذي يصل فيه الحدث.
(أعتقد أن y = 0 هو الأعلى لـ Nsevent والأسفل لـ cgevent).
لديك هذا الطريق الخاطئ. يستخدم الكوارتز المقلوب ، وهو y = 0 = أعلى. يستخدم Appkit غير مستقر ، وهو y = 0 = أسفل. (تحرير: للأحداث ، أي Quartz 2D ، واجهة برمجة تطبيقات الرسم ، تستخدم إحداثيات غير مستقرة ، مثل Appkit.)