16

我想打开 UIDocumentPickerViewController 并且它应该允许用户选择所有类型的文件。我试图在 UIDocumentPickerViewController init 方法中提及所有 UTI,但仍然无法为某些文件(如 rar、Visio 文件、mpp、mpt)找到有效的 UTI

UIDocumentPickerViewController *documentPicker = [[UIDocumentPickerViewController alloc] initWithDocumentTypes:[MingleUtils allowedUTIs] inMode:UIDocumentPickerModeImport];

+(NSArray*)allowedUTIs{
    return @[@"public.data",@"public.content",@"public.audiovisual-content",@"public.movie",@"public.audiovisual-content",@"public.video",@"public.audio",@"public.text",@"public.data",@"public.zip-archive",@"com.pkware.zip-archive",@"public.composite-content",@"public.text"];
}
4

4 回答 4

31

如果你想允许任何文件类型,你应该使用

UIDocumentPickerViewController* documentPicker = 
  [[UIDocumentPickerViewController alloc] initWithDocumentTypes:@[@"public.data"]
                                                         inMode:UIDocumentPickerModeImport];

有关UTI 概念,请参阅 Apple 文档

于 2016-03-18T15:19:08.023 回答
12

斯威夫特 5:

import MobileCoreServices

    let importMenu = UIDocumentPickerViewController(documentTypes: ["public.item"], in: .import)
    importMenu.delegate = self
    importMenu.modalPresentationStyle = .fullScreen
    self.present(importMenu, animated: true, completion: nil)
于 2019-10-21T17:39:18.453 回答
2
UIDocumentPickerViewController* documentPicker = 
  [[UIDocumentPickerViewController alloc] initWithDocumentTypes:@[@"public.item"]
                                                         inMode:UIDocumentPickerModeImport];
于 2017-02-03T06:23:59.910 回答
1

我认为您最好的方法是使用抽象的 UTI 类型

使用 kUTTypeContent 和 kUTTypeItem 应该涵盖大多数文件类型。

于 2015-10-13T11:00:33.583 回答