2

我需要将 NSTextView 的内容从 Mac 应用程序传输到 iOS 应用程序。我使用 XML 作为传输文件格式。

所以我需要将 NSTextView 的内容(文本、字体、颜色等)保存为字符串。有什么办法吗?

4

2 回答 2

3

一种方法是归档 NSAttributedString 值。概述直接输入答案的示例代码:

NSTextView *myTextView;
NSString *myFilename;
...
[NSKeyedarchiver archiveRootObject:myTextStorage.textStorage
                            toFile:myFilename];

读回来:

myTextView.textStorage.attributedString = [NSKeyedUnarchiver unarchiveObjectWithFile:myFilename];

这就是创建和读回文件所需的全部内容。有一些匹配的方法可以创建 NSData 而不是文件,您可以将 NSData 转换为 NSString 或将一个插入 NSDictionary 并将其序列化为 plist (XML) 等。

于 2013-04-26T18:07:34.157 回答
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];
于 2013-04-26T14:57:38.060 回答