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

2023-11-25

我读过关于NSPasteBoard在Apple文档中,以及它如何允许应用程序写入PasteBoard并允许其他应用程序读取该文本并使用它。

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

我想做的是类似的事情Snippet and 片段应用程序 do.

如果我完全愚蠢并且错过了 Apple Docs 中明显的内容,您能否指出我正确的路径:)

Thanks!


有人可以告诉我如何将应用程序(位于状态栏中)的文本粘贴到另一个应用程序内的 NSTextField 中。

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

此外,您不能假设用户想要粘贴到 NSTextField 中。它可能是 NSTextView、WebView 中的文本区域、Carbon EditText 或 MLTE 控件,或者其他一些文本编辑器,例如 Qt 或 wxWidgets 文本编辑器。他们甚至可能使用带有列表视图的应用程序,让他们可以将文本直接粘贴到其中。

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

要伪造 ⌘V 事件,请查看CG事件点击。你需要使用the CGEventCreateKeyboardEvent功能要创建事件本身,并且由于该函数需要一个键代码,因此您需要查找 ⌘V 组合的 V 部分的正确键代码,这需要通过文本输入源服务 or 键盘布局服务,取决于布局。

此时,您可能会考虑使用辅助功能在“编辑”菜单中找到“粘贴”菜单项并向其发送一条 AXPress 消息,但“粘贴”和“编辑”只是这些概念的英文单词;如果您这样做,您的应用程序将无法以任何其他语言运行。您可以按顺序(第三个菜单,第六个菜单项)进行操作,但是您的应用程序将无法在没有“文件”菜单、没有“重做”菜单项或有两个“撤消”菜单项 (Photoshop) 的应用程序中运行。打造 ⌘V 活动确实是一条出路。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Cocoa 将文本从一个应用程序粘贴到另一个应用程序? 的相关文章

随机推荐

  • 提升无锁 spsc_queue 缓存内存访问

    我需要非常关注当前多线程项目中的速度 延迟 我试图更好地理解缓存访问 我不清楚无锁队列 例如 boost lockfree spsc queue 如何在缓存级别访问 使用内存 我见过使用队列 其中需要由消费者核心操作的大对象的指针被推入队列
  • 有没有办法使用“请求”通过 python 调用 Azure Devops?

    所以 从我所看到的大多数sources 他们说如果您尝试让 python 程序调用 azure devops api 调用 它会使用 python import 语句 例如 from azure devops connection impo
  • 如何使用android PhoneGap上传文件?

    我使用 Android PhoneGap 创建了应用程序 我想上传文件 即 当我单击上传按钮时 文件选择对话框将打开 然后我选择文件 然后单击该对话框中的打开按钮 我在phonegap API中使用文件传输 但输出不是这样的 如何修改pho
  • 如何在 Silverlight 上显示 tiff 文件?

    如何在 Silverlight 应用程序上显示 tiff 文件 我可以显示除 tiff 之外的任何图像格式 有人可以帮助我吗 谢谢 我成功地在 Silverlight 中显示 TIFF 免费移植很容易LibTiff NET库到 Silver
  • SQL Server - 遇到 0 时重置的累积总和

    我想对列进行累积和 但每当遇到 0 时都会重置聚合值 这是我尝试做的一个例子 该数据集 pk price 1 10 2 15 3 0 4 10 5 5 给出这个 pk price 1 10 2 25 3 0 4 10 5 15 在 SQL
  • Sublime Text 控制台不显示带重音符号的行

    在 Sublime Text 2 和 3 中 控制台输出不显示带有重音符号的行 我在用着Tools gt Build在 Windows 中的 vanilla Sublime 中 使用自动构建系统来执行它 有什么解决办法吗 将文档中标准系统输
  • 如何使用带有尾随空格的内联代码?

    当我使用 在我的 Sphinx 文档中 我收到以下警告 WARNING Inline literal start string without end string Trying samp leads to WARNING Inline i
  • 无法运行 Flask 文档中引用的示例代码

    我正在阅读 Flask 文档 并希望使用他们在 git 存储库中引用的示例 但是 教程与存储库中的代码不匹配 我无法运行它们 我收到以下错误 app cli command initdb AttributeError Flask objec
  • ggplot2中的渐变填充

    说一下是否有以下情节 library ggplot2 n lt 1169 df22 lt data frame x 1 n val seq 0 0 5 length out n type 1 ggplot df22 aes x x y va
  • 手臂。从超级用户模式访问用户 R13 和 R14

    如何访问进入管理员模式时保存的用户R13和R14 我使用的是 ARM7TDMI IE 我不想访问管理程序 R14 它现在包含用户模式的返回地址 而是想要用户模式链接寄存器的值 这是我正在编写的调试器的一部分 这些寄存器有特殊的别名吗 Tha
  • ImportError:尝试安装软件包时没有名为 pip 的模块

    使用 PyCharm 全新安装 Ubuntu 13 10 在设置 python 解释器时 我选择了 安装 setuptools 然后选择 安装 pip 现在 如果我尝试使用 pip 执行任何操作 我会得到以下结果 ciaran ciaran
  • 在管理站点中创建隐藏字段

    如何在管理站点中创建完全隐藏的字段 输入和标签 我知道关于exclude属性 但它完全从模板中排除该字段 而我在网页中需要它 但隐藏 class OutForm ModelForm reply to forms ModelChoiceFie
  • Cocoa:模拟 Macbook 上键和多媒体键

    我正在尝试使用以下命令模拟任何活动应用程序的上部 Macbook 键 CGEventCreateKeyboardEvent NULL CGKeyCode keycode true CGEventCreateKeyboardEvent NUL
  • 如何使 wxFrame 表现得像模态 wxDialog 对象

    是否可以使 wxFrame 对象表现得像模态对话框 创建 wxFrame 对象的窗口停止执行 直到 wxFrame 对象退出 我正在研究一个小游戏并遇到了以下问题 我有一个主程序窗口 用于托管主应用程序 战略部分 有时 我需要将控制权转移到
  • 在数组上使用 preg_replace

    我有一个相对较大的元素数组 我想搜索字符串并替换任何匹配项 我目前正在尝试使用preg replace和正则表达式 preg replace d dIPT w IPT array 我想获得所有匹配的值00IPT A or 0IPT A wi
  • 如何克服 - pip install ansible 在 Windows 上失败,文件名或扩展名太长

    如何修复 Windows 上的 pip 安装失败并出现以下错误 尝试安装 ansible 时出现此错误 我怀疑这是选择安装的 pip 软件包的问题 但在基于 Linux 的系统上同样可以正常工作 pip install 与操作系统有什么区别
  • 如何编写 Windows 批处理脚本来从目录复制最新文件?

    我需要将目录中的最新文件复制到新位置 到目前为止我已经找到了资源forfiles命令 一个与日期相关的问题这里 还有另一个相关问题 我只是在将各个部分组合在一起时遇到了一些麻烦 如何将该目录中的最新文件复制到新位置 接受的答案给出了在命令中
  • TypeScript 中使用 async/await 进行方法链接

    我遇到一种情况 我需要对异步方法的结果调用异步方法 class Parent constructor private child Child private getChild Promise
  • 如何显示屏幕已锁定?

    在我的应用程序中 我需要知道设备何时被锁定 在 HTC 上 它看起来像是短按 电源 按钮 那么问题是 设备锁定时会触发哪个事件 或者设备将要休眠 你应该延长BroadcastReceiver并实施onReceive 像这样 public c
  • 如何使用 Cocoa 将文本从一个应用程序粘贴到另一个应用程序?

    我读过关于NSPasteBoard在Apple文档中 以及它如何允许应用程序写入PasteBoard并允许其他应用程序读取该文本并使用它 有人可以告诉我如何将应用程序 位于状态栏中 的文本粘贴到NSTextField那是在不同的应用程序内