本机插入符号位置 macos 可可

hug*_*411 5 macos cocoa applescript objective-c caret

我希望能够使用可可或 appleScript 在 Mac High Sierra 中的任何应用程序中获得全局插入符号位置。我已经使用 NSEvent 来获取键盘和鼠标挂钩,但是有没有办法获取插入符号位置挂钩?

插入符号与鼠标位置不同。它在按键事件或鼠标点击时移动。在 Windows 中,您几乎可以在任何地方获得插入符号位置。我想知道是否有 macos 的等价物。

我想在文本插入符号上显示一个弹出窗口,如果我在键盘上输入或换行,它会随着文本移动。我尝试获取键事件的位置 (locationInWindow) 但它让我回到鼠标位置。我不是沙箱所以我什至可以调用applescripts

更新:可以通过使用可访问性 API 在插入符号之前获取字母的边界来做到这一点。

谢谢

chr*_*rum 0

我还没有机会亲自尝试,所以你可能会先于我确认/拒绝这一点。

UIEvent 的addGlobalMonitorForEventsMatchingMask:handler:掩码可以有一个值,NSEventMaskCursorUpdate并且大概返回的 NSEvent 对象将包含一个可以执行操作的坐标(即转换为屏幕空间)。

这里的警告是文档明确指出的

仅当启用了辅助功能或您的应用程序可信任辅助功能访问时,才可以监视与按键相关的事件(请参阅 AXIsProcessTrusted)。

您的帖子似乎表明您不希望使用 Accessibility API(“但如果不使用 Accessibility API”),因此这可能意味着您在寻求满足的特定要求组合方面运气不好。

  • 我在网上再次检查,唯一的解决方案是获取插入符号之前字母的选定文本的范围。这将给出该字母的坐标。当我没有任何文本(在新行上)时,代码将生成一个空格,获取位置并删除空格。 (2认同)