如何使用Cocoa将文本从一个应用程序粘贴到另一个应用程序

如何使用Cocoa将文本从一个应用程序粘贴到另一个应用程序,第1张

概述我在Apple文档中已经阅读了有关NSPasteBoard的内容,以及它如何允许应用程序写入PasteBoard并允许其他应用程序读取该文本并使用它. 有人可以告诉我如何将应用程序(位于状态栏中)的文本粘贴到不同应用程序内的NSTextField中. 我想做的是与Snippet和SnippetsApp类似的东西. 如果我完全愚蠢并且错过了Apple Docs中显而易见的内容,请你指点我正确的道路: 我在Apple文档中已经阅读了有关NSPasteBoard的内容,以及它如何允许应用程序写入PasteBoard并允许其他应用程序读取该文本并使用它.

有人可以告诉我如何将应用程序(位于状态栏中)的文本粘贴到不同应用程序内的NSTextFIEld中.

我想做的是与Snippet和SnippetsApp类似的东西.

如果我完全愚蠢并且错过了Apple Docs中显而易见的内容,请你指点我正确的道路:)

谢谢!

解决方法

Could someone tell me how to paste text from am application (that sits in the status bar) into a NSTextFIEld that is insIDe a different application.

粘贴是接收应用程序中发生的事情.写入粘贴板正在复制.

此外,您不能假设用户想要粘贴到NSTextFIEld中.它可以是NSTextVIEw,WebVIEw中的textarea,Carbon EditText或MLTE控件,或其他文本编辑器,如Qt或wxWidgets文本编辑器.他们甚至可能正在使用带有列表视图的应用程序,以便将文本直接粘贴到其中.

因此,没有直接告诉应用程序的程序化方法“这里有一些文本 – 请粘贴它”.您必须将其复制到常规粘贴板,然后伪造一个通常应该导致最前面的应用程序粘贴的事件.查理对⌘V的建议是一种方式,尽管很棘手; Dvorak布局将V放在另一个键上,而“DvorakQWERTY⌘”布局将V-with-⌘(与V-without-⌘相反)放在与QWERTY V相同的键上.

要伪造⌘V事件,请查看CGEventTap.您需要使用the CGEventCreateKeyboardEvent function来创建事件本身,并且由于该函数需要一个关键代码,因此您需要查找V部分的正确密钥代码. ⌘V组合,需要通过Text Input Source Services或Keyboard Layout Services,具体取决于布局.

此时您可能会想到使用“辅助功能”在“编辑”菜单中找到“粘贴”菜单项并向其发送AXPress消息,但“粘贴”和“编辑”只是这些概念的英文单词;如果您这样做,您的应用程序将无法使用任何其他语言.您可以按顺序(第三个菜单,第六个菜单项),但是如果没有“文件”菜单,没有“重做”菜单项或两个“撤消”菜单项(Photoshop),您的应用程序将无法运行.锻造⌘V事件真的是要走的路.

总结

以上是内存溢出为你收集整理的如何使用Cocoa将文本从一个应用程序粘贴到另一个应用程序全部内容,希望文章能够帮你解决如何使用Cocoa将文本从一个应用程序粘贴到另一个应用程序所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1035311.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存