属性不保存文件

时间:2014-10-18 06:51:32

标签: objective-c cocoa

这可能很容易,但我无法解决这个问题 - 也许已经很晚了。我有一个简单的程序,它从NSTextView获取文本并将其保存为rtf。保存文本本身很有用,我无法弄清楚如何获取要标记的属性。

代码:

 NSAttributedString *saveString = [[NSAttributedString alloc]
                                    initWithString:[textView string]];

 NSData *writeResults = [saveString 
                           RTFFromRange:NSMakeRange:(0, [saveString length])
                           doumentAttributes:?? ];

 [writeResults writeToURL:[panel URL] atomically: YES];

我知道NSDictionary需要documentAttributes,所以我如何从视图中获取该内容?

我错过了什么?

1 个答案:

答案 0 :(得分:0)

您似乎在询问textView的字符串属性。您需要询问它的attributionString属性:

NSAttributedString *saveString = textView.attributedString;

您可以从以下属性字符串中获取属性:

NSMutableDictionary *allAttributes = [[NSMutableDictionary alloc] init];
[saveString enumerateAttribuesInRange:NSMakeRange(0,saveString.length) options:NSAttributedStringEnumerationReverse usingBlock:^(NSDictionary *attrs, NSRange range, BOOL *stop) {
    [allAttrubutes addEntriesFromDictionary:attrs];
}];
NSData *writeResults = [saveString.string RTFFromRange:NSMakeRange(0,saveString.length) documentAttributes:allAttributes];

我已经使用这种方法多次获取属性但是我从未保存到RTF,所以我不知道具体如何。但是,所有属性都将出现在字典中。