cargue el file rtf en UITextView en Swift 2

¿Alguien puede ayudarme a cargar un text rtf en UITextView con Swift 2? Las respuestas que he recibido son antiguas y están desactualizadas. El text es instrucciones sobre cómo jugar el juego que estoy escribiendo en una aplicación. Hasta ahora, todo lo que he podido hacer es copyr y pegar todo el text rtf en el cuadro de marcador de position. Esto funciona para los iPhones en el simulador, pero al intentarlo en el simulador de iPad o iPhone 6 Plus aparecen barras de desplazamiento dobles verticales cuando hago esto. Parece desorderado

También ahora tengo un text simple del mismo file, así que podemos intentarlo también.

Actualización Swift 3

if let rtfPath = Bundle.main.url(forResource: "SomeTextFile", withExtension: "rtf") { do { let attributedStringWithRtf:NSAttributedString = try NSAttributedString(url: rtfPath, options: [NSDocumentTypeDocumentAttribute:NSRTFTextDocumentType], documentAttributes: nil) self.textView.attributedText = attributedStringWithRtf } catch let error { print("Got an error \(error)") } } 

Actualización Swift 4

  if let rtfPath = Bundle.main.url(forResource: "someRTFFile", withExtension: "rtf") { do { let attributedStringWithRtf: NSAttributedString = try NSAttributedString(url: rtfPath, options: [NSAttributedString.DocumentReadingOptionKey.documentType: NSAttributedString.DocumentType.rtf], documentAttributes: nil) self.textView.attributedText = attributedStringWithRtf } catch let error { print("Got an error \(error)") } } 
 if let rtfPath = NSBundle.mainBundle().URLForResource("description_ar", withExtension: "rtf") { let attributedStringWithRtf = NSAttributedString(fileURL: rtfPath, options: [NSDocumentTypeDocumentAttribute:NSRTFTextDocumentType], documentAttributes: nil, error: nil) self.textView.attributedText = attributedStringWithRtf } 

Puede leer el file rtf usando el siguiente código en Swift 2.

Cargar file RTF

  let path = NSBundle.mainBundle().pathForResource("sample-rtf", ofType: "rtf") let contents: NSString do { contents = try NSString(contentsOfFile: path!, encoding: NSUTF8StringEncoding) } catch _ { contents = "" } let array : NSArray = contents.componentsSeparatedByString("\n"); self.textView.text = (array.objectAtIndex(0) as! String); //self.textView.text = contents as String 

Intente usar un file de text plano (txt) en lugar de rtf. Los files RTF también contienen información de formatting sobre el text. Esas cosas innecesarias que ves después de leer el contenido.

Abra el file rtf en Mac TextEdit y presione Cmd + Shift + T (esto lo convertirá en text sin formatting y eliminará todo el formatting), luego guarde como un txt.

Cargar file de text

  let path = NSBundle.mainBundle().pathForResource("sample-text", ofType: "txt") let contents: NSString do { contents = try NSString(contentsOfFile: path!, encoding: NSUTF8StringEncoding) } catch _ { contents = "" } self.textView.text = contents as String 

Swift 3 Código:

 if let rtfPath = Bundle.main.url(forResource: "description_ar", withExtension: "rtf") { do { let attributedStringWithRtf:NSAttributedString = try NSAttributedString(url: rtfPath, options: [NSDocumentTypeDocumentAttribute:NSRTFTextDocumentType], documentAttributes: nil, error: nil) self.textView.attributedText = attributedStringWithRtf } catch { print("We got an error \(error)") //or handle how you want } } 

Ediciones y actualizaciones inspiradas en @MikeG