Как преобразовать 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 может быть нулем.
Сопутствующее руководство можно найти здесь