
IOS
IOS 14中,苹果引入了一个名为UIDocumentPickerViewController的新类,用于在应用程序中实现文件选择和导入功能。这个类的初始化方式为init(forOpeningContentTypes: [UTType]? = nil),通过传入一个可选的UTType数组参数,我们可以限定用户只能选择特定类型的文件。
在IOS 14之前,我们通常使用UIDocumentPickerViewController的init(documentTypes:in: )方法来实现文件选择功能。但是这个方法有一个局限性,就是只能选择与应用程序注册的文件类型相匹配的文件。而新的初始化方法则提供了更大的灵活性,我们可以根据具体需求选择支持的文件类型。下面是一个使用UIDocumentPickerViewController初始化的案例代码:Swiftimport UIKitclass ViewController: UIViewController, UIDocumentPickerDelegate { override func viewDidLoad() { super.viewDidLoad() let documentPicker = UIDocumentPickerViewController(forOpeningContentTypes: [UTType.text]) documentPicker.delegate = self present(documentPicker, animated: true, completion: nil) } func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) { // 处理已选择的文件 } func documentPickerWasCancelled(_ controller: UIDocumentPickerViewController) { // 用户取消了文件选择 }}在上面的代码中,我们创建了一个UIDocumentPickerViewController实例,并指定只能选择文本文件。然后,我们设置了该实例的代理为当前的ViewController,并通过present方法将其显示出来。当用户选择了一个或多个文件后,会调用代理方法documentPicker(_:didPickDocumentsAt:),我们可以在这个方法中处理已选择的文件。如果用户取消了文件选择,会调用代理方法documentPickerWasCancelled(_:),我们可以在这个方法中做相应的处理。自定义可选文件类型除了指定预定义的文件类型,我们还可以自定义支持的文件类型。下面是一个示例代码:Swiftlet documentTypes: [UTType] = [ UTType.audio, UTType.movie, UTType.pdf, UTType.image,]let documentPicker = UIDocumentPickerViewController(forOpeningContentTypes: documentTypes)在这个示例中,我们创建了一个包含音频、视频、PDF和图片文件类型的UTType数组。然后,我们将这个数组作为参数传递给UIDocumentPickerViewController的初始化方法,从而限定用户只能选择这些文件类型。一下,IOS 14中的UIDocumentPickerViewController为我们提供了更加灵活和强大的文件选择和导入功能。通过指定支持的文件类型,我们可以限制用户只能选择特定类型的文件,从而提高应用程序的安全性和用户体验。
Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号