Xcode 7 中的 CG EventCreate MouseEvent 编译错误
CGEventCreateMouseEvent Complie Error in Xcode 7
即使 CGEventCreateMouseEvent
在 Xcode 7 中没有弃用,我还是收到错误消息
No matching function for call to 'CGEventCreateMouseEvent'
请找到在 Xcode 6 (SDK OSX 10.10)
中有效的代码
-(void)sendMouseClick:(CGMouseButton)mouseBtn value:(uint32_t)value
{
int mouseEvent = 0;
if(mouseBtn == kCGMouseButtonLeft && value == 1) //left btn down
{
mouseEvent = kCGEventLeftMouseDown;
}
else if (mouseBtn == kCGMouseButtonLeft && value == 0) //left btn up
{
mouseEvent = kCGEventLeftMouseUp;
}
else if (mouseBtn == kCGMouseButtonRight && value == 1) //Right btn down
{
mouseEvent = kCGEventRightMouseDown;
}
else if (mouseBtn == kCGMouseButtonRight && value == 0) //Right btn up
{
mouseEvent = kCGEventRightMouseUp;
}
if(mouseEvent != 0) // a valid mouse event
{
CGEventRef ourEvent = CGEventCreate(NULL);
NSPoint mouseLoc = CGEventGetLocation(ourEvent); //get current mouse position
CGEventRef mouseClick = CGEventCreateMouseEvent(
NULL,
mouseEvent,
mouseLoc,
mouseBtn
);
CGEventPost(kCGHIDEventTap, mouseClick);
}
}
我试过导入 <CoreGraphics/CGEvent.h>
但没有任何区别。知道发生了什么吗?
我发现在SDK 10.11之后存在类型不匹配的问题。
改变,
int mouseEvent = 0
到
CGEventType mouseEvent = kCGEventNull;
解决了问题。
即使 CGEventCreateMouseEvent
在 Xcode 7 中没有弃用,我还是收到错误消息
No matching function for call to 'CGEventCreateMouseEvent'
请找到在 Xcode 6 (SDK OSX 10.10)
中有效的代码-(void)sendMouseClick:(CGMouseButton)mouseBtn value:(uint32_t)value
{
int mouseEvent = 0;
if(mouseBtn == kCGMouseButtonLeft && value == 1) //left btn down
{
mouseEvent = kCGEventLeftMouseDown;
}
else if (mouseBtn == kCGMouseButtonLeft && value == 0) //left btn up
{
mouseEvent = kCGEventLeftMouseUp;
}
else if (mouseBtn == kCGMouseButtonRight && value == 1) //Right btn down
{
mouseEvent = kCGEventRightMouseDown;
}
else if (mouseBtn == kCGMouseButtonRight && value == 0) //Right btn up
{
mouseEvent = kCGEventRightMouseUp;
}
if(mouseEvent != 0) // a valid mouse event
{
CGEventRef ourEvent = CGEventCreate(NULL);
NSPoint mouseLoc = CGEventGetLocation(ourEvent); //get current mouse position
CGEventRef mouseClick = CGEventCreateMouseEvent(
NULL,
mouseEvent,
mouseLoc,
mouseBtn
);
CGEventPost(kCGHIDEventTap, mouseClick);
}
}
我试过导入 <CoreGraphics/CGEvent.h>
但没有任何区别。知道发生了什么吗?
我发现在SDK 10.11之后存在类型不匹配的问题。
改变,
int mouseEvent = 0
到
CGEventType mouseEvent = kCGEventNull;
解决了问题。