我正在编写文本编辑器,我想添加RTFD支持。将RTFD文件类型添加到我的Info.plist后,我收到消息“readFromFileWrapper:ofType:error:必须覆盖您的应用程序才能处理文件包。”
我在文档中浏览了一下,发现了一些东西,但我没有设法做任何事情。有人可以这么善良并帮助我吗?
- (BOOL)readFromFileWrapper:(NSFileWrapper *)fileWrapper ofType:(NSString *)typeName error:(NSError **)outError {
if ([typeName isEqualToString:@"Rich Text with Attachments"]) {
NSLog(@"Its RTFD");
//it gets to here but I don't know how to load the rtfd data then :(
}
ofType:typeName] return YES; }
任何帮助都是适用的:)
答案 0 :(得分:0)
readRTFDFromFile:
的{{1}}和writeRTFDToFile:atomically:
方法。
readRTFDFromFile:
尝试在路径读取RTFD文件,如果成功则返回
NSText
,如果没有则返回YES
。
NO
<强>讨论强>
path 应该是- (BOOL)readRTFDFromFile:(NSString *)path
文件或.rtf
文件包装器的路径,而不是.rtfd
文件包装器中的RTF文件。
如果您来自.rtfd
,请执行以下操作:
NSURL
为安全起见,请先致电[textView readRTFDFromFile:[[self fileURL] path]];
。
答案 1 :(得分:-1)
我尝试了你的代码片段,并取得了以下成果:
打开了NSDocument窗口,标题已更新为RTFD文件的名称,但NSTextView仍为空白。
我非常确信我的代码会打开它,因为我从NSDocument实例获取了自己的URL,将其转换为NSString并将其发送到textview ...
if ([typeName isEqualToString:@"Rich Text with Attachments"]) {
NSString *urlString = [[self fileURL] absoluteString];
NSLog(@"%@",urlString);
[textView readRTFDFromFile:urlString];
return YES;
}
日志返回了这个:
file://localhost/Users/David/Documents/Coursework/Geography%20Coursework.rtfd/
所以它应该有效吗?