我有一个NSTextView
,其中可能包含富文本或带有图像的富文本NSTextAttachment
。我添加附件的方法如下:
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];
My -fileWrapperOfType:error:
method:
- (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 时,所有附件都会丢失。请帮忙。我缺少什么?
我找到了一个可接受的解决方案,如下所述:Cocoa:文本视图中的自定义附件 http://www.dejal.com/blog/2007/11/cocoa-custom-attachment-text-view
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)