DropBox Chooser 和 documentsPicker for Swift developers 3.0

DropBox Chooser and documentsPicker for Swift developers 3.0

虽然 Chooser 实现 iOS 存在 Here。但是,它仅限于 Objective-C。是否可以在 swift 中手动创建一个选择器?

(一个 dropBox 选择器)

我也无法充分调用文档选择器功能,可以从用户可能已安装的任何应用程序中提取任何文档。

提前致谢

已解决

来自您项目的功能。首先启用 iCloud 服务和密钥共享,现在在您的 class 中导入 MobileCoreServices。最后在你的 class 中扩展了以下三个 classes。

UIDocumentMenuDelegate,UIDocumentPickerDelegate,UINavigationControllerDelegate

现在实现以下功能..

 public func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL) {
              let myURL = url as URL
              print("import result : /(myURL)")
    }


public func documentMenu(_ documentMenu:UIDocumentMenuViewController, didPickDocumentPicker documentPicker: UIDocumentPickerViewController) {
        documentPicker.delegate = self
        present(documentPicker, animated: true, completion: nil)
    }


func documentPickerWasCancelled(_ controller: UIDocumentPickerViewController) {
            print("view was cancelled")
            dismiss(animated: true, completion: nil)
    }

如何调用所有这些?将以下代码添加到您的可点击功能中..

func clickFunction(){

let importMenu = UIDocumentMenuViewController(documentTypes: [String(kUTTypePDF)], in: .import)
            importMenu.delegate = self
            importMenu.modalPresentationStyle = .formSheet       
            self.present(importMenu, animated: true, completion: nil)
}

点击您的按钮。会弹出如下菜单..

以 DropBox 为例。单击任何项​​目。您将被重定向到您的应用程序。 Url 将被打印出来。

根据需要处理文档类型。在我的应用程序中,用户只允许使用 Pdf。所以,适合自己。

kUTTypePDF

另外,如果您想定制自己的菜单栏。添加以下代码并在处理程序中自定义您自己的函数

        importMenu.addOption(withTitle: "Create New Document", image: nil, order: .first, handler: { print("New Doc Requested") })

尽情享受吧。