我希望能够使用cocoa或appleScript在Mac High Sierra的任何应用程序中获得全局插入位置。我已经使用NSEvent来获取键盘和鼠标钩子,但有没有办法让插入位置挂钩?
插入符号与鼠标位置不同。它会在按键事件或鼠标单击时移动。在Windows中,几乎可以在任何地方获得插入位置。我想知道是否有等效的macos。
我想在文本插入符号上显示一个弹出窗口,如果我在键盘或行返回时键入,它会随着文本一起移动。我尝试获取键事件的位置,(locationInWindow)但它给了我回鼠标位置。我不是沙箱所以我甚至可以打电话给applescripts
更新:可以通过使用辅助功能API获取插入符号之前的字母边界来实现此目的。
感谢
答案 0 :(得分:0)
我还没有机会亲自尝试一下,所以你可能会打败我,确认/拒绝这个。
UIEvent有addGlobalMonitorForEventsMatchingMask:handler:
,其中掩码可以具有值NSEventMaskCursorUpdate
,并且可能返回的NSEvent对象将包含可以对其执行操作的坐标(即转换为屏幕空间)。
这里有一个警告明确说明
如果启用了辅助功能,则只能监视与键相关的事件 或者如果您的应用程序受信任可访问性访问(请参阅 AXIsProcessTrusted)。
您的帖子似乎暗示您不希望使用辅助功能API("但如果不使用辅助功能API"),那么可能意味着您已退出在你想要实现的要求的特定组合中运气好。