我的目标是找到一个尽可能多的应用程序的解决方案.到目前为止,我考虑过使用AppleScript,但这会限制可以与我的服务一起使用的应用程序数量.至少必须支持这些常见的应用程序:Safari,firefox(没有AppleScript?),Word,Excel,……
我还考虑将剪贴板的内容保存在临时变量中,然后模拟文本复制 *** 作(Cmd-C),获取文本然后重新放入原始内容.这可能会在模拟复制 *** 作时突出显示“编辑”菜单项对我来说似乎有些笨拙. IMO这个解决方案似乎不适合商业产品.
我也希望得到的不仅仅是选择(即:Safari或Word中页面的完整内容等),以便将来添加一些额外的功能.
有关如何实现此行为的任何想法/详细信息?
提前感谢任何提示!
N.B:我需要支持至少10.4及以上,但理想情况下也要超过10.4.
更新:
我选择的解决方案:使用“责任链”设计模式(GOF)结合3种不同的输入方法(Pasteboard,AppleScript和Accessibility),自动使用最佳可用输入源.
请注意,当使用NSAppleScript的executeAndReturnError:方法返回NSAppleEventDescriptor(假设为“描述符”实例)时,对于[descriptor stringValue]方法返回内容,在AppleScript中必须使用“return someString”OUTSIDE of“tell”block否则什么也不会被退回.
解决方法 可访问性将起作用,但仅限于辅助设备的访问权限已启用.您需要获取当前应用程序,然后获取其聚焦的UI元素,然后获取其选定的文本范围及其值(全文)和选定的文本范围.您可以只获取其选定的文本,但这可以连接或忽略多个选择.
准备好任何失败的步骤:应用程序可能没有任何窗口,可能没有焦点的UI元素,焦点的UI元素可能没有文本,并且焦点的UI元素可能只有一个空的选定文本范围.
总结以上是内存溢出为你收集整理的objective-c – 如何从其他应用程序中获取所选文本?全部内容,希望文章能够帮你解决objective-c – 如何从其他应用程序中获取所选文本?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)