2012-05-23 110 views
0

我試圖從一個字符串創建一個rtf文件。 rtf文件已成功創建,但當我嘗試打開文件時出現以下提醒(類似):打開通過Xcode創建的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]; 
    } 


有什麼不對?
謝謝!

+0

誰知道?你回來的錯誤代碼是什麼?看起來你現在只是無視它,可以告訴你問題是什麼。 –

+0

我在xcode上沒有錯誤。它毫無問題地完成了這項工作。該消息僅在我嘗試打開桌面上的文件時出現。 –

+0

好吧,'NSString'會將純文本寫入磁盤,而不是富文本。你可以打開文件,如果你把它重命名爲'aa.txt'? –

回答

0

對於富文本,您應該使用NSAttributedString而不是NSString。但是格式化你喜歡的文字,然後寫有RTF:

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

要了解如何創建和操作的屬性串,看到蘋果的Attributed String Programming Guide