RxDocumentPicker 0.2.0

RxDocumentPicker 0.2.0

Paweł Rup 维护。



 
依赖项
RxSwift>= 0
RxCocoa>= 0
 

  • 作者
  • Paweł Rup

RxDocumentPicker

CI Status Version License Platform Xcode Swift 5.3

要求

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 文件。