Как преобразовать NSAttributedString в NSData?

У меня есть NSAttributedString что я хочу написать обратно в монтажный картон.

Общее NSPasteboard имеет разные типы, NSAttributedString с вложениями подходит NSPasteboardTypeRTFD

Я умею писать в картонку:

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

Но как конвертировать из данного NSAttributedString два NSData RTF (который должен соответствовать типу, читаемому на монтажном столе)?

2 ответа

Решение

Вы можете сделать это с RTFDFromRange:documentAttributes:

NSAttributedString *text;
...
NSData *rtfd = [text RTFDFromRange:NSMakeRange(0, text.length)
                documentAttributes:nil];

Что вы хотите, чтобы данные были, вы просто хотите текст?
Затем вы можете преобразовать в NSString с -string

Изменить: я не мог найти методы, потому что они находятся в категории: Дополнения набора приложений NSAttributedString

Спасибо @CRD за указание на меня.

Я думаю, что это интересно -RTFDFromRange:documentAttributes: говорится, что documentAttributes это обязательный словарь, то он говорит:

Если нет атрибутов уровня документа, dict может быть нулем.

Сопутствующее руководство можно найти здесь

Другие вопросы по тегам