2

我有一个NSAttributedString我想写回粘贴板的内容。

一般 NSPasteboard有不同的类型,带NSAttributedString 附件的确实适合NSPasteboardTypeRTFD

我知道如何写入粘贴板:

    NSData * __strong newContent = ... // how?
    NSPasteboard * __strong pboard = [NSPasteboard generalPasteboard];
    NSString * __strong type = NSPasteboardTypeRTFD;
    [pboard setData:newContent forType:type];

但是如何从给定的NSAttributedString两个RTF NSData转换(然后应该适合粘贴板可读的类型)?

4

2 回答 2

5

你可以这样做RTFDFromRange:documentAttributes:

NSAttributedString *text;
...
NSData *rtfd = [text RTFDFromRange:NSMakeRange(0, text.length)
                documentAttributes:nil];
于 2013-11-05T22:36:28.053 回答
2

你想要数据是什么,你只想要文本吗?
然后你可以转换为 NSString-string

编辑:我找不到这些方法,因为它们属于一个类别:NSAttributedString Application Kit Additions

感谢@CRD 将我指向那里。

我认为有趣的是它声明-RTFDFromRange:documentAttributes:documentAttributes是必需的字典,然后它说:

如果没有文档级属性,则 dict 可以为 nil。

可在此处找到配套指南

于 2013-11-05T21:42:54.213 回答