How to trigger a mouseDown:(NSEvent *) programmatically (without using the mouse)?

瘦欲@ 提交于 2019-12-08 02:43:39

问题


I am developing a Leap Motion Application where I already move the cursor with it, but I don't know how I can trigger a mouseDown:(NSEvent *) programmatically.


回答1:


This worked well for me in Cocoa Mac:

void PostMouseEvent(CGMouseButton button, CGEventType type, const CGPoint point)
{
   CGEventRef theEvent = CGEventCreateMouseEvent(NULL, type, point, button);
   CGEventSetType(theEvent, type);
   CGEventPost(kCGHIDEventTap, theEvent);
   CFRelease(theEvent);
}

Use this link to find out about the parameters: https://developer.apple.com/library/mac/#documentation/Carbon/Reference/QuartzEventServicesRef/Reference/reference.html

For example, to trigger a MouseDown event at the point (500,500) I've used:

PostMouseEvent(kCGMouseButtonLeft, NX_LMOUSEDOWN, CGPointMake(200, 200));


来源:https://stackoverflow.com/questions/14752772/how-to-trigger-a-mousedownnsevent-programmatically-without-using-the-mouse

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!