Using UIDocumentPickerViewController to import text in Swift

ios, swift, xcode6

Solution

Got it! I had two problems:

1) Apple says you've gotta specify UTI's in an array. I called the documentType a `KUTTypeText`. It should be a `"public.text"` in the array.

Here's Apple's listing of 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)

}

The second problem was a syntactic issue on the Delegate, solved with this:

// 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!)
    }
}

Problem

I'm currently taking an iOS development course and as part of my project, I'm tasked with using `UIDocumentPickerViewController` to import text. Every example I've found is either a) written in Objective-C or b) is for importing `UIImage` files. How do I set the delegate method for a text file? Here's what I've got so far: I have the iCloud capability set up. Works The delegate is specified, as follows: ``` class MyViewController: UIViewController, UITextViewDelegate, UIDocumentPickerDelegate ``` I have the property set up for the type of text I'm trying to import: ``` @IBOutlet weak var newNoteBody: UITextView! ``` I have an `IBAction` setup as follows: ``` @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) } ``` I can't figure out what the line should be below. The documentation on Apple's website isn't clear and every example I've found is in Objective-C or is for images. ``` // 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!) } } ```

Original source