Aggiunta di un’interruzione di riga a un UITextView

Ho un UITextView che prende un NSString con formattazione stringWithUTF8String . Sta ottenendo i suoi valori da un database e voglio che il testo nel database sia reso con interruzioni all’interno del testo. Ho provato a usare \n per farlo ma viene visualizzato come testo. Facendo questo nella mia pagina di informazioni della app come testo semplice ha funzionato, ma penso che il motivo per cui non funziona quando si prende dal database è a causa della formattazione.

Eventuali suggerimenti?

Se vuoi aggiungere una nuova riga nello storyboard Attribute-Inspector (AI) di Xcode5 / Xcode6, lo fai in questo modo:

  1. Trascina un UITextView.
  2. Fare doppio clic per modificare il testo, posizionare il cursore nel punto in cui si desidera interrompere il paragrafo.
  3. Hit alt: inserisci un paio di volte per creare una riga vuota e un paragrafo.

Oppure, CTRL + Invio crea una nuova riga.

Ora puoi vedere l’effetto in output / Visualizza in storyboard. inserisci la descrizione dell'immagine qui

Espansione un po ‘della risposta di tc: quando hai una nuova stringa nella stringa, probabilmente vuoi convertirli in \n (cioè, @"\\n" in Cocoa), quindi salvare nel database e, per ottenere la stringa BACK dal database, probabilmente vorrai convertirli in newline. Quindi useresti il ​​codice qualcosa come questo:

 NSString *saveString = [myTextField.text stringByReplacingOccurrencesOfString: @"\n" withString: @"\\n"]; // save it to the db // ... later ... NSString *dbString = // get the string from the db. myTextField.text = [dbString stringByReplacingOccurrencesOfString: @"\\n" withString: @"\n"]; 

Semplicemente il seguito:

 { textView.text = @"January: 7th,21st,\n February: 4th,18th,\n March: 4th,18th,\n April: 1st, 15th, 29th, \n May: 13th, 27th, \n June: 10th,24th, \n July: 8th, 22nd, \n August: 5th, 19th, \n September: 2nd, 16th, 30th, \n October: 14th, 28th, \n November: 11th, 25th"; NSLog (@"Recycle Dates for Abbey Way"); } 

sarà inserito come di seguito nella tua TextView o qualsiasi altra cosa tu scelga

Produzione :

7 gennaio, 21,
4 febbraio, 18 febbraio
Marzo: 4 °, 18 ° ecc. Ecc

In Swift, aggiungi “\ n” tra due stringhe

Esempio:

 let firstString = "Hello" let secondString = "Senorita" textview.text = firstString + "\n" + "secondString" 

Penso che dovresti provare a usare “\ r”.

L’ho provato su Xcode 4.2.1, iOS 4.3

Modifica: funziona anche su iOS 3.0 e iOS 5.1

Un UITextView prenderà le nuove linee, ma non funzionerà con i ritorni di cariage. Dovrai assicurarti che il tuo contributo sia corretto.

L’ho provato nell’editor IB e inizialmente ho avuto alcuni problemi. Poi ho usato un editor di testo, ho digitato il mio testo e poi l’ho incollato nell’editor IB.

Questo ha fatto il trucco, per me. La tua fonte proviene da un database, quindi penso che le newline siano in realtà newline, ma si preferisce il ritorno a capo o altro. Controlla la stringa HEX del tuo input.

Imposta il tipo di tastiera (UIKeyboardType) e (UIReturnKeyTYpe) returnKeyType

se stai costruendo in codice.

Se stai usando IB, vai al pannello del primo ispettore e imposta TextInputTraits

quando arrivi da db. provare

 NSString *content = [mytext stringByReplacingOccurrencesOfString:@"\\n" withString:@"\n"]; self.textView.text = content; 

se stai ricevendo il testo dal web, assicurati di mettere uno spazio prima e dopo il / n che ha risolto il mio problema

come esempio (php):

 echo $item_detail['item_title']." \n "; 

Espansione della risposta di Olie … In Swift il codice per l’aggiornamento della stringa dal database è:

 let dbString = // get the string from the db. myTextField.text = dbString.stringByReplacingOccurrencesOfString("\\\\n", withString: "\n") 

Mi ci è voluto un po ‘per capire, quindi ho pensato di condividere.

Stai salvando un letterale “\ n” nel database. Prova a salvare una nuova riga.