NSScrollWheel türünde bir NSEvent yapıyorum (sahte). Birkaç başka NSEvents türü için NSEvent kurucu yöntemleri vardır (mouseEvent, keyEvent, enterExitEvent, otherEvent), ancak hiçbiri örneğin deltaX'i ayarlamama izin vermiyor.NSScrollWheel türünde bir NSEvent nasıl oluşturulur?
cevap
NSEvent bunu yapmanın bir yolunu sağlamaz, ancak bir CGEvent oluşturabilir ve etrafında bir NSEvent sarıcısı oluşturabilirsiniz. Olay otomatik olarak imlecin mevcut yerini kullanacaktır. Bakınız CGEventCreateScrollWheelEvent. Ancak, bu olayı NSApplication'ın postEvent:atStart:
kullanarak göndermesi (muhtemelen bir pencerenin tanımlanmamış olması nedeniyle) çalışmıyor. CGEvent'i doğrudan olay akışına gönderebilir veya NSEvent'i doğrudan bir görünümün scrollWheel:
yöntemine gönderebilirsiniz. kod aşağıdaki
CGWheelCount wheelCount = 2; // 1 for Y-only, 2 for Y-X, 3 for Y-X-Z
int32_t xScroll = −1; // Negative for right
int32_t yScroll = −2; // Negative for down
CGEventRef cgEvent = CGEventCreateScrollWheelEvent(NULL, kCGScrollEventUnitLine, wheelCount, yScroll, xScroll);
// You can post the CGEvent to the event stream to have it automatically sent to the window under the cursor
CGEventPost(kCGHIDEventTap, cgEvent);
NSEvent *theEvent = [NSEvent eventWithCGEvent:cgEvent];
CFRelease(cgEvent);
// Or you can send the NSEvent directly to a view
[theView scrollWheel:theEvent];
CGEventCreateScrollWheelEvent
kullanarak bir CGEventRef
oluşturabilir ve eventWithCGEvent:
ile bir NSEvent
haline dönüştürebilirsiniz. CGEvent
'a bilgi eklemek için CGEventSetIntegerValueField
- fields arasında kCGScrollWheelEventDeltaAxis1
, ...2
ve ...3
vardır.
Dene: benim daha
int scrollingDeltaX =... //custom value
//if you have some NSEvent *theEvent
CGEventRef cgEvent = CGEventCreateCopy(theEvent.CGEvent);
CGEventSetIntegerValueField(cgEvent, kCGScrollWheelEventDeltaAxis2, scrollingDeltaX);
NSEvent *newEvent = [NSEvent eventWithCGEvent:cgEvent];
CFRelease(cgEvent);
- 1. NSEvent
- 2. NSEvent: tek modfierkey test
- 3. hata: ‘ostream’ türünde bir
- 4. Görünüm koordinasyon sisteminde [NSEvent mouseLocation] ayarlanıyor
- 5. Java'da herhangi bir dosyanın Hash nasıl oluşturulur?
- 6. Nesne türünde bir yöntem nasıl yüklenir
- 7. 'X' türünde argüman 'X' türünde parametre atanamaz '
- 8. 'int' türünde bir değer kullanılamaz.
- 9. Bir Java sınıfının JSON temsili nasıl oluşturulur?
- 10. Bir işlev nasıl oluşturulur
- 11. Bir Enum Nasıl Oluşturulur
- 12. Değer türleri birbirinden dökülebiliyorken neden bir değer türünde bir sözlüğü başka bir değer türünde sözlüğe dönüştüremiyorum?
- 13. Ben türünde bir sözlük var LINQ
- 14. Ben türünde bir fonksiyonu inşa çalışıyorum Haskell
- 15. "Http" türünde bir argüman, İyonik ngx-çeviri
- 16. enable_if türünde belirli bir şablon sınıfı yok
- 17. Türünde üye yok
- 18. 'NoneType' türünde argüman değiştirilemiyor
- 19. Genel türünde yöntem çağırma?
- 20. , Global.asax türünde MvcApplication yüklenemedi
- 21. Bir karma tablosu nasıl oluşturulur
- 22. Sözlükten varsayılan bir nasıl oluşturulur?
- 23. Golang'da bir dizin nasıl oluşturulur?
- 24. Ruby'de bir dizi nasıl oluşturulur
- 25. Özelleştirilebilir bir grafik nasıl oluşturulur?
- 26. WPF'de bir bulmaca nasıl oluşturulur?
- 27. Bir çıkış iletisi nasıl oluşturulur
- 28. Bir EventListener'da şablon nasıl oluşturulur?
- 29. Bir derecelendirme uygulaması nasıl oluşturulur?
- 30. Plunker'da nasıl bir dizin oluşturulur?
+1 çok daha iyi cevap! –