我需要将 NSTextView 的内容从 Mac 应用程序传输到 iOS 应用程序。我使用 XML 作为传输文件格式。
所以我需要将 NSTextView 的内容(文本、字体、颜色等)保存为字符串。有什么办法吗?
我需要将 NSTextView 的内容从 Mac 应用程序传输到 iOS 应用程序。我使用 XML 作为传输文件格式。
所以我需要将 NSTextView 的内容(文本、字体、颜色等)保存为字符串。有什么办法吗?
一种方法是归档 NSAttributedString 值。概述直接输入答案的示例代码:
NSTextView *myTextView;
NSString *myFilename;
...
[NSKeyedarchiver archiveRootObject:myTextStorage.textStorage
toFile:myFilename];
读回来:
myTextView.textStorage.attributedString = [NSKeyedUnarchiver unarchiveObjectWithFile:myFilename];
这就是创建和读回文件所需的全部内容。有一些匹配的方法可以创建 NSData 而不是文件,您可以将 NSData 转换为 NSString 或将一个插入 NSDictionary 并将其序列化为 plist (XML) 等。
您最好的选择可能是将文本存储为 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];