gpt4 book ai didi

swift - macOS - 按值移动鼠标

转载 作者:搜寻专家 更新时间:2023-11-01 07:17:04 24 4
gpt4 key购买 nike

我有一个应用程序通过蓝牙从 iOS 应用程序接收数据,它应该移动鼠标光标。

问题是我在 y 轴上得到了一些奇怪的功能(x 没问题)。

输入看起来像 dx~dy 其中 dx,dy 是光标移动的值。这是一个例子:

-3.0~2.0

我的输出示例:

鼠标位置:(596.0, 309.0) 新鼠标位置:(603.0, 311.0)

鼠标位置:(603.0, 489.0) 新鼠标位置:(610.0, 491.0)

鼠标位置:(610.0, 309.0) 新鼠标位置:(615.0, 311.5)

鼠标位置:(615.0, 489.0) 新鼠标位置:(618.0, 491.0)

鼠标位置:(618.0, 309.0) 新鼠标位置:(618.5, 312.5)

正如您首先看到的,它的 y 坐标比较高。所以基本上鼠标一直在上下“跳跃”。

这是我处理输入的代码:

let mouseLoc = NSEvent.mouseLocation()
let newLoc = CGPoint(x: mouseLoc.x-CGFloat(x), y: mouseLoc.y+CGFloat(y))
CGDisplayMoveCursorToPoint(0, newLoc)

编辑:在测试用例中,我的值介于 0 和 2 之间,因此两个状态之间不可能有 100 的差异

最佳答案

Cocoa 和 Core Graphics(又名 Quartz)使用不同的坐标系。在 Cocoa 中,原点位于主屏幕的左下角,y 随着向上移动而增加。在 Core Graphics 中,原点位于主屏幕的左上角,y 会随着向下而增加。

由于您使用的是 Core Graphics 函数来移动光标,因此您需要从 Cocoa 的坐标系进行转换。

var mouseLoc = NSEvent.mouseLocation()
mouseLoc.y = NSHeight(NSScreen.screens()![0].frame) - mouseLoc.y;
// etc.

关于swift - macOS - 按值移动鼠标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41563412/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com