Objective c OSX鼠标位置问题

Objective c OSX鼠标位置问题,objective-c,macos,cocoa,osx-lion,Objective C,Macos,Cocoa,Osx Lion,我试图通过编程将鼠标增量乘以每个鼠标移动事件上1到0之间的数字来减慢鼠标光标的速度。它在X轴上运行良好,但Y位置总是移回屏幕中心,这非常奇怪 我似乎不明白为什么不管你是向上还是向下移动鼠标,光标的Y位置都会移向屏幕的中心 我为鼠标移动事件设置了CGEventTap,下面是回调的代码: CGEventRef mouse_filter(CGEventTapProxy proxy, CGEventType type, CGEventRef event, float *speed_modifier)

我试图通过编程将鼠标增量乘以每个鼠标移动事件上1到0之间的数字来减慢鼠标光标的速度。它在X轴上运行良好,但Y位置总是移回屏幕中心,这非常奇怪

我似乎不明白为什么不管你是向上还是向下移动鼠标,光标的Y位置都会移向屏幕的中心

我为鼠标移动事件设置了CGEventTap,下面是回调的代码:

CGEventRef 
mouse_filter(CGEventTapProxy proxy, CGEventType type, CGEventRef event, float *speed_modifier) {


    CGPoint point = CGEventGetLocation(event);
    NSPoint old_point = [NSEvent mouseLocation];
    CGPoint target; 

    int tX = point.x; 
    int tY = point.y; 
    float oX = old_point.x;
    float oY = old_point.y;
    float dX = tX-oX;
    float dY = tY-oY;


    dX*=0.1, dY*=0.1;
    tX = round(oX + dX);
    tY = round(oY + dY);


    target = CGPointMake(tX, tY);

    CGWarpMouseCursorPosition(target);




    return false;
}
有人能帮我弄清楚怎么做吗


我在应用程序运行期间记录了一些值,发现
oY
似乎不包含预期值。。。它似乎总是接近430,通常在这两个像素之内
tY
包含看似正确的目标值,因此一次迭代的
oY
应该等于上一次迭代的
tY
(它适用于X值),但是,
oY
始终接近430,即使鼠标应该移向屏幕顶部。这让我觉得
dY
以某种方式被设置为一个将
oY
恢复到430左右的值,但我不知道这是如何发生的,因为
dY
似乎也输出了正确的值…

CGPoint=cgfeventgetlocation(event)
是一个点,其中(0,0)是屏幕左侧的顶部

NSPoint old_point=[NSEvent mouseLocation]
是一个点,其中(0,1)是屏幕左侧的底部

如果我获得屏幕高度,请执行以下操作:

'oY=abs(oY-屏幕高度+1)',oY现在位于屏幕左上角,我的应用程序工作正常