我有NSTextView,我可以将文本作为nsattributedstring。我可以使用NSSavePanel将文本保存到.txt文件中,作为纯文本,但不是格式化文本。
@IBAction func saveDNA(sender: AnyObject)
{
let saveDNAtoFile: NSSavePanel = NSSavePanel()
saveDNAtoFile.canSelectHiddenExtension = true
saveDNAtoFile.runModal()
do
{
let exportedFileURL = saveDNAtoFile.URL
let textDNA = self.inputDnaFromUser.string
if exportedFileURL != nil
{
try textDNA!.writeToURL(exportedFileURL!, atomically: false, encoding: NSUTF8StringEncoding)
}
} catch
{
}
}
我如何使用NSSavePanel将attributedstring(文本)保存到文件中,以便以后能够打开此文件,在格式化文本之前进行所有操作?如果可以使用NSSavePanel,我应该在上面的代码中更改什么?
2条答案
按热度按时间oaxa6hgo1#
一天出来...好了,我已经弄清楚了斯威夫特2的代码(注意这个-选项:NSFileWrapperWritingOptions.Atomic).下面。我相信它会为像我这样的初学者保存时间,比这个标准功能有更多的时间来编写必要的和更有趣的算法。
wgmfuz8q2#
AppKit和UIKit为
NSAttributedString
增加了很多方法,用于序列化和反序列化,以前它们是单独文档,现在它们是统一的NSAttributedString
documentation的一部分。这里列出的方法太多了,但是在文档中您可以找到将
NSAttributedString
转换为多种格式(包括富文本格式)的方法(RTF格式)、HTML(从macOS 10.15和iOS 13开始)、降价(从macOS 12和iOS 15开始)等。你还可以转换为/从Data
,在这种情况下,您可以通过在documentAttributes
字典中设置适当的documentType
来指定格式。与Data
之间的转换支持一些格式,对于这些格式没有专用的方法。