Как записать NSAttributedstring в rtf file?
Подскажите, как я могу записать NSAttributedstring в rtf file? через macOS or iOS. Я нашел очень старый ответ https://stackoverflow.com/questions/33178895/how-can-i-save-the-attributed-string-text-into-file-swift-cocoa Но я не совсем понял что именно мне следует делать, и может существует более простой способ?
Ответы (1 шт):
Автор решения: VAndrJ
→ Ссылка
Всё что Вам нужно - получить Data для записи в файл. Для этого у NSAttributedString есть функция:
func rtf(from range: NSRange, documentAttributes dict: [NSAttributedString.DocumentAttributeKey : Any] = [:]) -> Data?
А потом просто её записать по нужному пути:
func saveToRtf(string: NSAttributedString, path: String) -> Bool {
let rtfData = string.rtf(
from: NSRange(location: 0, length: string.length),
documentAttributes: [.documentType: NSAttributedString.DocumentType.rtf]
)
return FileManager.default.createFile(
atPath: path,
contents: rtfData,
attributes: nil
)
}
Результат для:
let string = NSAttributedString(
string: "Test",
attributes: [
NSAttributedString.Key.foregroundColor: NSColor.red,
NSAttributedString.Key.backgroundColor: NSColor.green
]
)
