4
我有一個NSTextView
,它可能包含富文本或富文本圖像NSTextAttachment
。還有就是我如何添加附件:將帶有NSTextAttachment的NSAttributedString保存到文件中。如何?
NSImage *image = [NSImage imageNamed:@"image"];
NSTextAttachmentCell *attachmentCell =[[NSTextAttachmentCell alloc] initImageCell:image];
NSTextAttachment *attachment =[[NSTextAttachment alloc] init];
[attachment setAttachmentCell: attachmentCell ];
NSAttributedString *attributedString =[NSAttributedString attributedStringWithAttachment: attachment];
[[aTextView textStorage] beginEditing];
if ([aTextView shouldChangeTextInRange:NSMakeRange([aTextView selectedRange].location, 0) replacementString:@""]) {
[[aTextView textStorage] insertAttributedString:attributedString atIndex:[aTextView selectedRange].location];
[aTextView didChangeText];
}
[[aTextView textStorage] endEditing];
我-fileWrapperOfType:error:
方法:
- (NSFileWrapper *)fileWrapperOfType:(NSString *)typeName error:(NSError *__autoreleasing *)outError
{
NSRange documentRange = NSMakeRange(0, [[[WindowController aTextView] textStorage] length]);
NSTextStorage *text = [[WindowController aTextView] textStorage];
NSFileWrapper *resultWrapper = nil;
if ([typeName compare:@"public.rtf"] == NSOrderedSame) {
resultWrapper = [[NSFileWrapper alloc] initRegularFileWithContents:[text RTFFromRange:documentRange documentAttributes:[NSDictionary dictionaryWithObjectsAndKeys:NSRTFTextDocumentType, NSDocumentTypeDocumentAttribute, nil]]];
}
else if ([typeName compare:@"com.apple.rtfd"] == NSOrderedSame) {
resultWrapper = [text RTFDFileWrapperFromRange:documentRange documentAttributes:[NSDictionary dictionaryWithObjectsAndKeys:NSRTFDTextDocumentType, NSDocumentTypeDocumentAttribute, nil]];
}
return resultWrapper;
}
但是當我節省RTFD,所有附件鬆動。請幫忙。我錯過了什麼?