0

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

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

还是我必须在幕后使用 .txt 扩展名保存它们?

4

1 回答 1

2

好吧,我在 API 中看不到一种方法来告诉 QLPreviewController 哪个 UTI 是适合文件的 UTI。但是因为 QLPreviewController 通过查看文件扩展名来确定 UTI,所以您可以复制文件,将“.txt”附加到它,然后打开这个文件。

在您的 QLPreviewControllerDatasource 实现中:

- (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];
}
于 2012-06-22T00:07:58.050 回答