问题标签 [nspasteboard]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
254 浏览

objective-c - 一般的NSPasteboard能占用多少内存?

一般的 NSPasteboard 存储用户复制的内容。例如,100 张图片和 1000 个单词。一般 NSPasteboard 的大小是否有限制,以便用户可以复制说.. 最多 99 张图像?

什么定义了这个限制?RAM或HD或..?

0 投票
1 回答
1019 浏览

macos - 从 NSPasteboard 复制和粘贴文本 + 图像

我们正在开发一个 C++ Qt 应用程序,它可以从外部应用程序复制选定的文本和/或图像,对其进行修改,然后将其粘贴回去。因为我们在 Mac 上,所以我们使用 Objective-C 来完成这部分。

我们在尝试从粘贴板获取图像时遇到问题。它适用于文本,但我们不确定如何处理图像或文本+图像的组合。由于我们不知道用户可能会选择什么,我们应该能够对粘贴板的内容进行通用检索以对其进行修改并将其放回粘贴板。

我们试过这个:

我们处理文本的解决方案是:

它没有用,那么,我们如何从粘贴板中获取用户选择?我们需要获取原始字节或 rtf 内容以便根据需要对其进行修改,然后将其放回粘贴板并将其粘贴回去以替换原始用户选择。

谢谢!

0 投票
1 回答
1551 浏览

cocoa - 复制 NSTextView 文本

当我实现以下代码以通过操作将文本复制到NSTextView对象中,然后手动将其粘贴到文本编辑器或电子邮件客户端之类的东西中时,粘贴的文本是一个长字符串。

如何保留文本的格式?

谢谢。

0 投票
0 回答
482 浏览

cocoa - 在可可中实施剪切和粘贴的最佳策略是什么?

使用 实现复制和粘贴非常简单NSPasteBoard。但是,NSPasteBoard似乎没有提供一种明显的方法来实现剪切和粘贴。一种策略是先复制然后删除,但这仅适用于字符串或文本等简单类型,但在操作文件时变得无效。在 Cocoa 中实现剪切和粘贴的最佳方法是什么?

0 投票
2 回答
377 浏览

objective-c - NSPasteboard 没有返回正确的数据类型

我正在尝试读取在粘贴板中找到的数据类型。但是,程序返回我有一个图像(可能是因为这是 if 语句中的第一个条件)。我究竟做错了什么?这是我所指的代码的一部分。谢谢。

0 投票
1 回答
1071 浏览

attachment - 属性字符串在粘贴板粘贴中丢失附件

我花了好几天的时间寻找将带有附件的属性字符串放到 NSPasteboard 上的解决方案。

我可以读取带有附件的 RTFD 文件,修改其文本和属性,然后将其粘贴在 NSPasteboard 上以用于其他应用程序(例如 Mail.app),并且效果很好。但我想做的也是在文本中的某个位置添加图像。我可以将文本作为属性字符串来做到这一点,但是如果我尝试插入图像(作为属性字符串的附件),图像永远不会到达(尽管其余的会)。

RTFD似乎有多种风格,我认为我需要的一种是序列化的。我已经尝试了许多 NSPasteboard 声明类型的变体,甚至使用 FileWrappers,但一定缺少一些重要的东西。不管我做什么,执着似乎永远不会到来。

奇怪的是,如果我读取一个带有图像附件的 RTFD 文件,对其进行修改并将其粘贴到粘贴板上,这些原始附件可以正常工作——如果我尝试添加新附件,它们就不会成功。一个例子是读取一个 RTFD 文件,处理它,加载粘贴板,然后将结果粘贴到邮件中。所有原始文本和图像,以及任何新修改或添加的文本和属性都会显示出来,但只是缺少附加的图像。

这是一些示例代码:

用一些文本创建一个属性字符串,然后添加一个附加的图像,然后再添加一点文本,在 textView 中显示它(所有这些都可以),然后加载粘贴板并粘贴到 textEdit 或 Mail ......附加的图像不存在,但其余的是:

有任何想法吗?

我尝试过使用 NSData、NSFileWrapper 序列化、设置各种粘贴板类型等等。到目前为止,似乎没有任何效果。如果我将图像加载为 TIFF 数据,它可以很好地粘贴,但我需要将其作为属性字符串插入到已经有附件的文件中的更大字符串中。

这是我第一次在这里发帖,所以请原谅任何格式错误 - 我会学习,非常感谢任何指示或帮助,即使它是 RTFM,我已经这样做但可能误解了。

0 投票
1 回答
332 浏览

cocoa - 将 NSData 和文件扩展名放到粘贴板上

我一直在网上搜索一个让我锁定的问题的答案。

我有一个子类 NSView 并希望它是可拖动的。当发布到桌面时,希望使用我分配的 NSData(以及已分配的扩展名)保存为文件。

我认为我需要正确调用:

但我一直在寻找几个小时,并没有找到任何可以帮助我的东西。

0 投票
1 回答
1271 浏览

objective-c - 使用 NSPasteboard 剪切和粘贴文件

我们应该如何使用 剪切和粘贴文件NSPasteboard?目前我通过写入和读取文件 URL 来实现复制和粘贴。cut 的问题是,在我将 URL 写入粘贴板之后,我必须删除该文件。当我尝试粘贴该文件时,它不再存在并且我无法复制它。我应该在粘贴板上写点别的吗?我也想过将文件复制到一个临时隐藏的位置,但这似乎有点低效。还有其他解决方案吗?

0 投票
1 回答
2351 浏览

objective-c - 检查当前在 NSPasteBoard 上复制的数据类型

我正在开发一个应用程序,我需要能够知道什么类型的数据只是被复制到NSPasteBoard. 从文档中我知道,当我们复制文件的任何内容时,NSPasteBoard都会将该内容传递到粘贴板服务器,系统上的任何应用程序都可以从中访问该数据。

现在,我想轮询粘贴板服务器并确定用户是否刚刚复制了一些文本内容,如果是文本内容,那么应用程序将处理这些数据,否则忽略其他数据,如图片、文件夹等。


Apple 文档中的发现

从文档中我发现,当我们将数据设置到粘贴板上时,我们可以设置数据类型。但是如果我们在系统上复制一些文本内容,我不能 100% 确定要设置什么类型的数据类型。dataTypeinsetData方法的参数是NSString.


任何进一步的指导都会非常有帮助。

0 投票
1 回答
391 浏览

macos - 将文本“粘贴”到外部 Mac App First Responder

是否有任何(App Store 安全)方法可以用文本自动填充另一个应用程序的第一响应者文本字段?例如,使用由 NSStatusBar 应用程序指定的热键,用户突出显示单独应用程序(如 TextEdit)中的文本,并将新文本粘贴到状态栏应用程序根据情境数据生成的 TextEdit 中。