在IOS上,你能让QLPreviewController将某些文件视为文本吗?

时间:2012-06-21 23:51:44

标签: ios text quicklook uti

我正在使用QLPreviewController来显示文件,其中许多文件实际上都是纯文本,但QLPreviewController似乎并不知道。 (例如,无法显示带有.m扩展名的文件。)

有没有办法告诉QLPreviewController将文件视为文字? (我认为它决定它根本无法查看它们。)我正在研究UTI,但我不确定这是否是正确的方向。 (我会知道文件是否是文本,所以我不会猜测。)

或者我必须在幕后使用.txt扩展名保存它们吗?

1 个答案:

答案 0 :(得分:2)

我没有在API中看到告诉QLPreviewController哪个UTI是文件的正确方法。 但是因为QLPreviewController通过查看文件扩展名来确定UTI,你可以复制文件,将“.txt”附加到它,然后打开它。

在您的QLPreviewControllerDatascource实现中:

- (id <QLPreviewItem>) previewController: (QLPreviewController *) controller previewItemAtIndex: (NSInteger) index; {
    NSString *file = @"source.m"
    NSString *tmp = [file stringByAppendingPathExtension:@".txt"]
    [[NSFileManager defaultManager]copyItemAtPath:file toPath:tmp error:NULL];
    return [NSURL fileURLWithPath:tmp];
}