0

Trying to export NSTextView data to an RTF doc. My old code, mainly "filename" from NSSavePanel is depreciated. The docs state "use URL". How can I do this?

Thanks.

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];

}
user1198008
  • 101
  • 1
  • 9

1 Answers1

0

As the doc says, you should use the URL method of NSSavePanel.

The code will look the same, but you'll use the NSString writeToURL:atomically:encoding:error: method instead :

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];
}

Note the two parameters to specify an encoding (here I set UTF-8), and an error object. I give NULL here, but you would perhaps give a valid object to get error information.