RxDocumentPicker
要求
Xcode 12, Swift 5.3
安装
Swift 包管理器
RxUserNotifications 通过 Swift 包管理器提供。要安装它,将以下行添加到您的 Package.swift
中的依赖项
.package(url: "https://github.com/pawelrup/RxDocumentPicker", .upToNextMinor(from: "0.2.0"))
并将 RxUserNotifications
添加到您的目标依赖项。
CocoaPods
RxDocumentPicker 可通过 CocoaPods 获取。要安装,只需将以下行添加到您的 Podfile
pod 'RxDocumentPicker'
使用
对于 iOS 11 之前的版本,您可以使用 UIDocumentMenuViewController
如下
let menu = UIDocumentMenuViewController(documentTypes: [kUTTypePDF as String], in: .import)
menu.rx
.didPickDocumentPicker
.do(onNext: { [weak self] (picker: UIDocumentPickerViewController) in
self?.present(picker, animated: true, completion: nil)
})
.flatMap { $0.rx.didPickDocumentAt }
.subscribe(onNext: {
print($0)
})
.disposed(by: disposeBag)
present(menu, animated: true, completion: nil)
从 iOS 11 开始,UIDocumentMenuViewController
已被弃用,所以您需要直接使用 UIDocumentPickerViewController
let picker = UIDocumentPickerViewController(documentTypes: [kUTTypePDF as String], in: .import)
picker.rx
.didPickDocumentsAt
.subscribe(onNext: { [weak self] (urls: [URL]) in
print(urls)
})
.disposed(by: disposeBag)
present(picker, animated: true, completion: nil)
如果您想知道用户何时取消选择文件,您可以通过如下方式订阅 documentPickerWasCancelled
let picker = UIDocumentPickerViewController(documentTypes: [kUTTypePDF as String], in: .import)
picker.rx
.documentPickerWasCancelled
.subscribe(onNext: {
// Do something
})
.disposed(by: disposeBag)
present(picker, animated: true, completion: nil)
在示例中可以查看 RxDocumentPicker
的使用方法。
作者
Paweł Rup,[email protected]
许可
RxDocumentPicker 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。