使用 UIDocumentPickerViewController 在 Swift 中导入文本
Posted
技术标签:
【中文标题】使用 UIDocumentPickerViewController 在 Swift 中导入文本【英文标题】:Using UIDocumentPickerViewController to import text in Swift 【发布时间】:2015-02-21 02:19:28 【问题描述】:我目前正在学习 ios 开发课程,作为我项目的一部分,我的任务是使用 UIDocumentPickerViewController
导入文本。我发现的每个示例都是 a) 用 Objective-C 编写的或 b) 用于导入 UIImage
文件。
如何设置文本文件的委托方法?
这是我目前得到的:
我已设置 iCloud 功能。 作品
指定委托,如下:
class MyViewController: UIViewController, UITextViewDelegate, UIDocumentPickerDelegate
我已为我尝试导入的文本类型设置了属性:
@IBOutlet weak var newNoteBody: UITextView!
我有一个IBAction
设置如下:
@IBAction func importItem(sender: UIBarButtonItem)
var documentPicker: UIDocumentPickerViewController = UIDocumentPickerViewController(documentTypes: [kUTTypeText as NSString], inMode: UIDocumentPickerMode.Import)
documentPicker.delegate = self
documentPicker.modalPresentationStyle = UIModalPresentationStyle.FullScreen
self.presentViewController(documentPicker, animated: true, completion: nil)
我不知道下面的行应该是什么。 Apple 网站上的文档不清楚,我发现的每个示例都在 Objective-C 中或用于图像。
// MARK: - UIDocumentPickerDelegate Methods
func documentPicker(controller: UIDocumentPickerViewController, didPickDocumentAtURL url: NSURL)
if controller.documentPickerMode == UIDocumentPickerMode.Import
// What should be the line below?
self.newNoteBody.text = UITextView(contentsOfFile: url.path!)
【问题讨论】:
【参考方案1】:知道了!我有两个问题:
1) Apple 表示您必须在数组中指定 UTI。我将 documentType 称为KUTTypeText
。它应该是数组中的"public.text"
。
这是 Apple 的 Uniform Text Identifiers (UTIs) 列表
@IBAction func importItem(sender: UIBarButtonItem)
var documentPicker: UIDocumentPickerViewController = UIDocumentPickerViewController(documentTypes: ["public.text"], inMode: UIDocumentPickerMode.Import)
documentPicker.delegate = self
documentPicker.modalPresentationStyle = UIModalPresentationStyle.FullScreen
self.presentViewController(documentPicker, animated: true, completion: nil)
第二个问题是 Delegate 的句法问题,解决方法如下:
// MARK: - UIDocumentPickerDelegate Methods
func documentPicker(controller: UIDocumentPickerViewController, didPickDocumentAtURL url: NSURL)
if controller.documentPickerMode == UIDocumentPickerMode.Import
// This is what it should be
self.newNoteBody.text = String(contentsOfFile: url.path!)
【讨论】:
我看到你使用.modalPresenationStyle,它真的有效吗?由于某种原因,即使我使用 PageSheet,选择器仍然以全屏模式显示 我想通过文档选择器选择多个文件,但允许MultipleSelection 在 UIDocumentPickerViewController 上不起作用,请帮助,提前致谢以上是关于使用 UIDocumentPickerViewController 在 Swift 中导入文本的主要内容,如果未能解决你的问题,请参考以下文章
在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?
Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)