objective-c - 将 NSDictionary 写入 NSPasteboard

标签 objective-c macos cocoa nsdictionary nspasteboard

我有一个字典,其中包含 NSData 格式的图像、图像的大小以及图像的其他属性。如何将 NSDictionary 写入 NSPasteboard

我编写的代码如下:

NSPasteboard *pasteBoard = [NSPasteboard generalPasteboard];
[pasteBoard clearContents];
[pasteBoard writeObjects:[NSArray arrayWithObject:myDictionary];

编译后,它在控制台中抛出以下消息:

class __NSDictionaryM 的实例对于 NSPasteboard -writeObjects: 无效。 类 __NSDictionaryM 未实现 NSPasteboardWriting 协议(protocol)。

最佳答案

对象应实现协议(protocol)NSPasteboardWriting以保存在pasteBoard服务器中。

Cocoa 框架类 NSStringNSAttributedStringNSURLNSColorNSSound >、NSImageNSPasteboardItem 实现此协议(protocol)。您可以使自定义类符合此协议(protocol),以便可以使用 NSPasteboard 的 writeObjects: 方法将该类的实例写入粘贴板。

为什么不这样做:

NSImage *image = ...;
NSArray *array = [NSArray arrayWithObject:image];
NSPasteboard *pasteBoard = [NSPasteboard generalPasteboard];
[pasteBoard writeObjects:array];

关于objective-c - 将 NSDictionary 写入 NSPasteboard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19153788/

相关文章:

ios - Objective C 比较 UIButton if(sender==button)

c++ - 相同的 C++ 代码导致 Windows 上的无限循环和 OSX 上的预期行为

objective-c - 如何覆盖现有文本文件,然后追加到它

python - 在 OS X 10.8 上从 Python 打开窗口时出现烦人的消息

swift - 在 Swift OSX 中,在哪里放置代码来突出显示放置目的地?

cocoa - 创建按钮的 quartz 代码?

macos - 如何将自定义表格单元格 View 放入 NSTableView 中?

iphone - iPhone 上的自定义 UITabBarItem 图像/标题

ios - 是否可以在一个 xib 中创建多个单元格?

objective-c - 当我尝试替换可变数组项时出现异常