我需要将NSTextView的内容从Mac应用程序传输到iOS应用程序。我正在使用XML作为传输文件格式。
所以我需要将NSTextView的内容(文本,字体,颜色atd。)保存为字符串。有什么方法可以做到吗?
答案 0 :(得分:3)
执行此操作的一种方法是归档NSAttributedString值。大纲示例代码直接输入答案:
NSTextView *myTextView;
NSString *myFilename;
...
[NSKeyedarchiver archiveRootObject:myTextStorage.textStorage
toFile:myFilename];
要读回来:
myTextView.textStorage.attributedString = [NSKeyedUnarchiver unarchiveObjectWithFile:myFilename];
这就是创建和回读文件所需的全部内容。有匹配的方法可以创建NSData而不是文件,您可以将NSData转换为NSString,或者只将一个插入到NSDictionary中,并将其作为plist(XML)等序列化。
答案 1 :(得分:1)
您最好的选择可能是将文本存储为RFTD,并通过NSAttributedString将其加载到其他文本视图中。
// Load
NSFileWrapper* filewrapper = [[NSFileWrapper alloc] initWithPath: path];
NSTextAttachment *attachment = [[NSTextAttachment alloc] initWithFileWrapper: filewrapper];
NSAttributedString* origFile = [NSAttributedString attributedStringWithAttachment: attachment];
// Save
NSData *data = [origFile RTFDFromRange: NSMakeRange(0, [origFile length]) documentAttributes: nil];
[[NSFileManager defaultManager] createFileAtPath: path contents: data attributes:nil];