我应该如何将 a 的内容转换NSTextView
为NSData
,然后在 Mac OS X 上将其转换回来并显示?
我可以使用textView.textStorage.string
(其中 textView 是NSTextView
对象)转换文本而不进行格式化。但是,我也想保存文本格式。
事实上,我已经实施了一种可行的方法,但我不确定它是否能保证始终有效。我对对象本身进行编码NSTextStorage
并编写它,然后将其作为NSAttributedString
. (NSTextStorage
是 的子类NSAttributedString
。)我这样做是因为我不能直接textStorage
为设置NSTextView
,但我可以设置其属性字符串。
这是我的转换代码(结果在 中data
):
NSMutableData *data = [[NSMutableData alloc] init];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:textView.textStorage forKey:@"attrs"];
[archiver finishEncoding];
读回来:
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
NSAttributedString* theAttrString = [unarchiver decodeObjectForKey:@"attrs"];
[unarchiver finishDecoding];
并显示它:
[textView.textStorage setAttributedString:theAttrString];
考虑到我对一个NSTextStorage
对象进行编码并将其读回并将其解释为NSAttributedString
?