سؤال

ما هي أفضل طريقة لتخزين موضع الماوس الحالي (على مستوى النظام) ثم (لاحقًا) وضع الماوس في تلك النقطة المخزنة؟

[NSEvent mouseLocation] يحصل لي على الموقف ، ويمكنني تحريك الماوس مع أ CGEventMouseMoved, ، لكن كل منهم يستخدمون نظامًا مختلفًا لتحديدات (أعتقد أن y = 0 هو الأعلى لـ nsevent والأسفل لـ cgevent).

أنا قلق بشأن متانة التقاط ارتفاع الشاشة واستخدامها للتحويل بين الاثنين - أم أن هذا هو أفضل طريقة؟

هل كانت مفيدة؟

المحلول

نعم ، يعد استخدام ارتفاع الشاشة الرئيسية الطريقة القياسية لإحداثيات شاشة التقليب.

نصائح أخرى

يمكنك استخدام أ cgeventtap للحصول على أحداث الماوس بدلاً من NSEVENT. ثم لديك اختيارك من الانقلب أو غير المتقلب في الوقت الذي يصل فيه الحدث.

(أعتقد أن y = 0 هو الأعلى لـ Nsevent والأسفل لـ cgevent).

لديك هذا الطريق الخاطئ. يستخدم الكوارتز المقلوب ، وهو y = 0 = أعلى. يستخدم Appkit غير مستقر ، وهو y = 0 = أسفل. (تحرير: للأحداث ، أي Quartz 2D ، واجهة برمجة تطبيقات الرسم ، تستخدم إحداثيات غير مستقرة ، مثل Appkit.)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top