打开通过Xcode创建的RTF文件时出错

时间:2012-05-23 18:00:28

标签: xcode macos cocoa document rtf

我正在尝试从字符串创建一个rtf文件。 rtf文件已成功创建,但当我尝试打开文件时,会出现以下警告(如:)

  

无法打开文档“aa.rtf”。

我的项目中有以下代码:

NSString* lol = @"sasasafagagsadfsada";
    NSSavePanel *panel = [NSSavePanel savePanel];

    [panel setAllowedFileTypes:[NSArray arrayWithObject:@"rtf"]];
    if ([panel runModal] == NSOKButton){
        [lol writeToURL:[panel URL] atomically:YES encoding:NSUTF8StringEncoding error:NULL];
    }


怎么了?谢谢!

1 个答案:

答案 0 :(得分:0)

对于富文本,您应该使用NSAttributedString代替NSString。根据需要格式化文本,然后使用以下命令写入RTF:

NSAttributedString *str = ...;
NSData *rtfData = [str RTFFromRange:NSMakeRange(0, [str length]) documentAttributes:nil];
[rtfData writeToFile:destinationPath atomically:YES];

要了解如何创建和操作属性字符串,请参阅Apple的Attributed String Programming Guide