很老的問題,但也許該解決方案幫助別人......
的RTFD格式不描述文件,但AA文件包中(這實際上是通過在Mac/iOS的UI修改爲一個目錄對用戶來說顯示爲單個文件)。
不過幸運的是NSFileWrapper能夠創造這樣RTFD束:
NSAttributedString* attrString = ...some attributed string with images ...;
NSDictionary* documentAttributes = @{
NSDocumentTypeDocumentAttribute: NSRTFDTextDocumentType
};
NSError* error = nil;
NSFileWrapper* fileWrapper = [attrString fileWrapperFromRange:NSMakeRange(0, attrString.length)
documentAttributes:documentAttributes
error:&error];
NSString* documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString* filePath = [documentsDirectory stringByAppendingPathComponent:@"example.rtfd"];
NSLog(@"Writing rtfd doc to: %@", filePath);
[NSFileManager.defaultManager removeItemAtPath:filePath error:&error];
BOOL result = [fileWrapper writeToURL:[NSURL fileURLWithPath:filePath]
options:NSFileWrapperWritingAtomic
originalContentsURL:nil
error:&error];
完成!
由於RTFD幾乎僅限於Mac/iOS格式,因此創建包含圖像的RTF文件可能更有趣。
不幸的是,Apple的RTF實現(NSDocumentTypeDocumentAttribute: NSRTFTextDocumentType
)不支持圖像。
見我回答另一個問題來解決這個:https://stackoverflow.com/a/29181130/2778898
你檢查[文本編輯示例代碼(https://developer.apple.com/library/mac/samplecode/TextEdit/Introduction/Intro.html )? TextEdit.app可以創建帶有附件的富文本文檔。 –
你是指TextEdit應用程序?如果是這樣,我意識到這可以做我想做的事情,但我想以編程方式做,以便我的應用程序可以創建相當於打開TextEdit,鍵入文本並插入圖像,而無需用戶在TextEdit中執行任何操作。 –
是的,我正在談論TextEdit應用程序。這是完整的源代碼可用作示例代碼。如果您正在尋找如何使用RTFD文件的示例,那麼從TextEdit源代碼開始是合理的。 –