如何将 UTType 与 UIdocumentPicker(页面?docx?)一起使用
How to use UTType with a UIdocumentPicker (pages? docx?)
我正在尝试打开一个只允许特定文件类型的选取器。
我正在使用此文档来查找我需要的 UTTYpe:
https://developer.apple.com/documentation/uniformtypeidentifiers/uttype/system_declared_uniform_type_identifiers
但是我找不到 .pages、.doc、.docx 的 UTTYpe...
我该怎么办?
这是我目前的代码
func presentPickerDocument() {
//Create a picker specifying file type and mode
var supportedTypes: [UTType]
supportedTypes = [UTType.pdf, UTType.url]
let documentPicker = UIDocumentPickerViewController(forOpeningContentTypes: supportedTypes, asCopy: true)
documentPicker.delegate = self
documentPicker.allowsMultipleSelection = false
present(documentPicker, animated: true, completion: nil)
}
您可以从这样的文件扩展名创建 UTType
:
UTType(tag: "pages", tagClass: .filenameExtension, conformingTo: nil)
这会创建一个 UTType?
,因为没有 UTType
与给定的文件扩展名关联。
您还可以使用:
UTType(filenameExtension: "pages")
但是如果文件扩展名继承自 public.data
,这只会找到 UTType
,因此它不适用于所有文件扩展名。
在 macOS 终端上,您还可以使用 mdls
命令检查文件的统一类型标识符
mdls -name kMDItemContentType yourFile.pages
或其整个树:
mdls -name kMDItemContentTypeTree yourFile.pages
之后,您可以使用其标识符创建一个 UTType
,如下所示:
UTType("com.apple.iwork.pages.sffpages")
我正在尝试打开一个只允许特定文件类型的选取器。 我正在使用此文档来查找我需要的 UTTYpe: https://developer.apple.com/documentation/uniformtypeidentifiers/uttype/system_declared_uniform_type_identifiers
但是我找不到 .pages、.doc、.docx 的 UTTYpe...
我该怎么办?
这是我目前的代码
func presentPickerDocument() {
//Create a picker specifying file type and mode
var supportedTypes: [UTType]
supportedTypes = [UTType.pdf, UTType.url]
let documentPicker = UIDocumentPickerViewController(forOpeningContentTypes: supportedTypes, asCopy: true)
documentPicker.delegate = self
documentPicker.allowsMultipleSelection = false
present(documentPicker, animated: true, completion: nil)
}
您可以从这样的文件扩展名创建 UTType
:
UTType(tag: "pages", tagClass: .filenameExtension, conformingTo: nil)
这会创建一个 UTType?
,因为没有 UTType
与给定的文件扩展名关联。
您还可以使用:
UTType(filenameExtension: "pages")
但是如果文件扩展名继承自 public.data
,这只会找到 UTType
,因此它不适用于所有文件扩展名。
在 macOS 终端上,您还可以使用 mdls
命令检查文件的统一类型标识符
mdls -name kMDItemContentType yourFile.pages
或其整个树:
mdls -name kMDItemContentTypeTree yourFile.pages
之后,您可以使用其标识符创建一个 UTType
,如下所示:
UTType("com.apple.iwork.pages.sffpages")