Mac编程:在应用程序中获取突出显示的文本?

时间:2012-10-30 21:48:47

标签: objective-c macos

我想通过制作一个简单的后台应用程序来尝试一些Mac编程,该应用程序记录用户在其他应用程序中突出显示的文本的所有历史记录,无论是PDF格式,文档文档还是网页(听起来很傻但是它非常有用)我)。有可能吗?

1 个答案:

答案 0 :(得分:1)

在一般情况下,这是不可能的,即使在一次考虑一个应用程序时也非常棘手。对于一些使用代码注入的应用程序(但这非常脆弱)可以实现,并且可以在理论上对使用AppleScript的某些应用程序进行(但仅当应用程序帮助您时)。

更常见的是创建Services,它允许您与其他应用程序粘贴板集成(通过用户干预)。但几乎没有应用程序将API暴露给他们的突出显示。


@nielsbot问了一个有趣的问题,也许这是一种方法。您可以调用AXUIElementCreateSystemWide来创建系统范围的辅助功能对象,然后将自己添加为等待kAXSelectedTextChangedNotification的观察者。这可能适用于可访问的应用程序(大多数使用标准小部件的应用程序)。所以值得研究。