我目前正在上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)
}
我不知道下面该行。苹果网站上的文档不清楚,我发现的每个示例都在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)苹果表示您必须在数组中指定UTI。我称documentType为a KUTTypeText
。它应该"public.text"
在数组中。
这是苹果公司的统一文本标识符(UTI)列表
@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)
}
第二个问题是代表身上的句法问题,此问题已解决:
// 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!)
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句