本地插入符号位置macos cocoa

时间:2018-05-07 12:33:05

标签: objective-c macos cocoa applescript caret

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

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

我想在文本插入符号上显示一个弹出窗口,如果我在键盘或行返回时键入,它会随着文本一起移动。我尝试获取键事件的位置,(locationInWindow)但它给了我回鼠标位置。我不是沙箱所以我甚至可以打电话给applescripts

更新:可以通过使用辅助功能API获取插入符号之前的字母边界来实现此目的。

感谢

1 个答案:

答案 0 :(得分:0)

我还没有机会亲自尝试一下,所以你可能会打败我,确认/拒绝这个。

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

这里有一个警告明确说明

  

如果启用了辅助功能,则只能监视与键相关的事件   或者如果您的应用程序受信任可访问性访问(请参阅   AXIsProcessTrusted)。

您的帖子似乎暗示您不希望使用辅助功能API("但如果不使用辅助功能API"),那么可能意味着您已退出在你想要实现的要求的特定组合中运气好。