NSEvent не предоставляет способа сделать это, но вы можете создать CGEvent и создать оболочку NSEvent вокруг него.Событие будет автоматически использовать текущее местоположение курсора.См. CGEventCreateScrollWheelEvent .Однако публикация этого события с использованием NSApplication postEvent:atStart:
не работает (возможно, потому что у него нет определенного окна).Вы можете опубликовать CGEvent непосредственно в потоке событий или отправить NSEvent напрямую в метод scrollWheel:
представления.
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];