我想创建一个类似于TextExpander的应用程序,但我不确定如何截取文本。据我所知,我需要从NSAccessability开始。任何人都可以分享一些片段,或者至少指出我正确的方向吗?
答案 0 :(得分:6)
首先,您应该知道,由于沙盒要求,如果您想在App Store中销售应用程序,这根本不可能。
如果您不打算对应用程序进行沙盒处理,则可以使用NSEvent
类方法addGlobalMonitorForEventsMatchingMask:
创建一个全局键事件处理程序,在其他应用程序中按下键时调用该处理程序(但不是您自己的应用,请使用addLocalMonitor...
。
要实际插入片段,例如TextExpander,有几种方法。您可以使用辅助功能API,但这需要您定位的应用支持辅助功能,但情况并非总是如此。
另一个选择是使用Quartz Event Services (CGEvent) APIs提供(除其他外)低级方法来模拟关键事件。
答案 1 :(得分:1)
编辑:没关系。你问的是Mac OS。我以为你在问iOS。
你应该看看how TextExpander is used by other apps。目标应用程序必须通过使TE提供的对象成为文本字段的委托来构建对TE的支持。您无法在其他人的应用中运行您的代码。他们必须将您的代码编译到他们的应用程序中这就是为什么有TextExpander SDK。
TextExpander代码在目标应用中后,文本字段委托会通过查找放入shared pasteboard的代码段来获取共享代码段。