将NSTextViewData保存到RTF文档

时间:2012-02-20 14:38:47

标签: cocoa rtf nssavepanel

尝试将NSTextView数据导出到RTF文档。我的旧代码,主要来自NSSavePanel的“文件名”是折旧的。文档说明“使用URL”。我怎么能这样做?

感谢。

NSSavePanel *panel = [NSSavePanel savePanel];

[panel setAllowedFileTypes:[NSArray arrayWithObject:@"rtf"]];
if ([panel runModal] == NSOKButton){


[[textView RTFFromRange:
      NSMakeRange(0, [[textView string] length])] 
     writeToFile:[panel filename] atomically:YES];

}

1 个答案:

答案 0 :(得分:0)

正如文档所说,您应该使用URL NSSavePanel方法。

代码看起来一样,但您将使用NSString writeToURL:atomically:encoding:error:方法代替:

NSSavePanel *panel = [NSSavePanel savePanel];

[panel setAllowedFileTypes:[NSArray arrayWithObject:@"rtf"]];
if ([panel runModal] == NSOKButton){
    [[textView RTFFromRange:NSMakeRange(0, [[textView string] length])] writeToURL:[panel URL] atomically:YES encoding:NSUTF8StringEncoding error:NULL];
}

注意两个参数来指定编码(这里我设置UTF-8)和一个错误对象。我在这里给NULL,但你可能会给出一个有效的对象来获取错误信息。