objective-c – 在NSAttributedString中保存自定义属性

前端之家收集整理的这篇文章主要介绍了objective-c – 在NSAttributedString中保存自定义属性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要在NSTextView中为所选文本添加自定义属性.所以我可以通过获取选择的属性字符串,添加自定义属性,然后用新的属性字符串替换选择.

所以现在我将文本视图的归因字符串作为NSData并将其写入文件.后来当我打开该文件并将其还原到文本视图时,我的自定义属性已经消失了!在完成自定义属性的整个方案后,我发现自定义属性不会为您保存.看这里的重要说明:http://developer.apple.com/mac/library/DOCUMENTATION/Cocoa/Conceptual/AttributedStrings/Tasks/RTFAndAttrStrings.html

所以我不知道如何使用此自定义属性保存和还原我的文档.任何帮助?

解决方法

保存NSAttributedString的正常方法是使用RTF,RTF数据是NSAttributedString的-dataFromRange:documentAttributes:error:method的NSAttributedString方法.

但是,RTF格式不支持自定义属性.相反,您应该使用NSCoding协议归档您的属性字符串,这将保留自定义属性

//asssume attributedString is your NSAttributedString
//encode the string as NSData
NSData* stringData = [NSKeyedArchiver archivedDataWithRootObject:attributedString];
[stringData writeToFile:pathToFile atomically:YES];

//read the data back in and decode the string
NSData* newStringData = [NSData dataWithContentsOfFile:pathToFile];
NSAttributedString* newString = [NSKeyedUnarchiver unarchiveObjectWithData:newStringData];

猜你在找的C&C++相关文章