0

我有一个简单的 Objective C 函数用于执行鼠标事件(单击):

void click(CGPoint pt, int clickCount) {
    CGEventRef theEvent = CGEventCreateMouseEvent(NULL, kCGEventLeftMouseDown, pt, kCGMouseButtonLeft);
    CGEventPost(kCGHIDEventTap, theEvent);
    CGEventSetType(theEvent, kCGEventLeftMouseUp);
    CGEventPost(kCGHIDEventTap, theEvent);
    if (clickCount == 2) {
        CGEventSetIntegerValueField(theEvent, kCGMouseEventClickState, 2);
        CGEventSetType(theEvent, kCGEventLeftMouseDown);
        CGEventPost(kCGHIDEventTap, theEvent);
        CGEventSetType(theEvent, kCGEventLeftMouseUp);
        CGEventPost(kCGHIDEventTap, theEvent);
    }
    CFRelease(theEvent);
}

问题是,如果屏幕被缩放(Control + Scroll),那么点击它的点就不是它应该在的位置(我猜它使用的是基于新视口的坐标,但即便如此它也没有意义)。

这是库中的错误吗?无论如何要注意用户放大并仍然单击正确的位置,即使这意味着移动屏幕视口?

4

0 回答 0