iOS Swift中的UIDocumentPickerController的文档文件问题?

Tec*_*ain 3 xcode ios icloud swift uidocumentpickervc

我正在使用下面的代码来显示文档选择器。当我显示选择器时,我使用下面的代码

let documentPickerController = UIDocumentPickerViewController(documentTypes: [String(kUTTypeText), String(kUTTypePDF), String(kUTTypePNG), String(kUTTypeJPEG), String(kUTTypePlainText), String(kUTTypeImage)], in: .import)
Run Code Online (Sandbox Code Playgroud)

上面的代码向我显示了iCloud中的所有文件,但不允许我选择doc,docx文件。这些文件显示为已禁用。

但是当我"public.data"UIDocumentPickerViewController构造函数中添加为元素时,它允许我选择doc,docx文件和文件未显示为已禁用。

请告诉我为什么会这样吗?

Sne*_*eha 6

为了能够选择doc和docx,您必须使用public.data。

com.microsoft.word.doc符合public.data

kUTTypePlainText仅允许.txt类型的文件

只允许文档输入“ com.microsoft.word.doc

let documentPickerController = UIDocumentPickerViewController(documentTypes: [com.microsoft.word.doc], in: .import)
Run Code Online (Sandbox Code Playgroud)

有关更多信息:系统声明的统一类型标识符


Mah*_*dra 6

只是发布答案以帮助其他用户。

.docx通过文档选择器选择文件,您需要使用org.openxmlformats.wordprocessingml.document类型。

let documentPickerController = UIDocumentPickerViewController(documentTypes: ["com.microsoft.word.doc", "org.openxmlformats.wordprocessingml.document"], in: .import)
Run Code Online (Sandbox Code Playgroud)

对于 iOS 14.0+

let documentPickerController = UIDocumentPickerViewController(forOpeningContentTypes: [.appleArchive])
Run Code Online (Sandbox Code Playgroud)

感谢更新@sadegh bitarafan