NSString con \ n o salto de línea


100

¿Alguien sabe cómo usar saltos de línea en NSString? Necesito hacer algo como esto:

[NSString stringWithFormat:@"%@,\n%@", mystring1,mystring2];

11
¿De verdad intentaste esto? Porque si lo hubiera hecho, habría obtenido su respuesta.
Dave DeLong

no, no funcionó. Veo \ n adjunto a la cadena, pero cuando se procesa, está en la misma línea.
Dave

4
Asegúrese de que este mensaje de tipo NSString que está mostrando no utilice soporte HTML. Si usa soporte HTML, no tratará \ n. Espero ser útil. Gracias, Aby
Abdul Yasin

Respuestas:


177

Me encontré con el mismo problema al sobrecargar la descripción de una subclase de NSObject. En esta situación, pude usar el retorno de carro (\ r) en lugar de una nueva línea (\ n) para crear un salto de línea.

[NSString stringWithFormat:@"%@\r%@", mystring1,mystring2];


1
¡Perfecto! Solo tenga en cuenta que tiene una coma innecesaria después del primer% @
Sam Spencer

1
@OMGPOP, tenga en cuenta que para el desarrollo de iOS también debe consultar mi respuesta a continuación.
Andy A

Perfecto funcionó para mí, muchas gracias por compartir esto.
swiftBoy

32

Si su cadena va en una UIView (por ejemplo, una UILabel), también debe establecer el número de líneas en 0

myView.numberOfLines=0;

26

Descubrí que cuando estaba leyendo cadenas de un .plistarchivo, las apariciones de "\n"se analizaban como "\\n". La solución para mí fue reemplazar las apariciones de "\\n"con "\n". Por ejemplo, dada una instancia de lectura con NSStringnombre myStringde mi .plistarchivo, tuve que llamar ...

myString = [myString stringByReplacingOccurrencesOfString:@"\\n" withString:@"\n"];

... antes de asignarlo a mi UILabelinstancia ...

myLabel.text = myString;

2
Este era mi escenario exacto, Adil. ¡Gracias por tu respuesta!
iOS4Life

12
NSString *str1 = @"Share Role Play Photo via Facebook, or Twitter for free coins per photo.";
NSString *str2 = @"Like Role Play on facebook for 50 free coins.";
NSString *str3 = @"Check out 'What's Hot' on other ways to receive free coins";


NSString *msg = [NSString stringWithFormat:@"%@\n%@\n%@", str1, str2, str3];

8

prueba esto (stringWithFormat tiene que empezar con minúsculas)

 [NSString stringWithFormat:@"%@\n%@",string1,string2];

2

\ n \ r parece funcionar para mí.

Estoy usando Xcode 4.6 con IOS 6.0 como objetivo. Probado en iPhone 4S. Pruébelo usted mismo.

Feng Chiu


1
esto no es una respuesta ... por favor escríbalos en los comentarios.
Shivaay

2

El carácter de salto de línea para NSString es \ r

forma correcta de usar [NSString StringWithFormat:@"%@\r%@",string1,string2];

\ r ----> retorno de carro


"StringWithFormat" no es válido; debería ser "stringWithFormat" (debe comenzar con minúsculas)
SpokaneDude

0

\nes la forma preferida de romper una línea. \rtambién funcionará. \n\ro \r\nson exagerados y pueden causarle problemas más adelante. Cacao, tiene el párrafo específico y caracteres de salto de línea para usos específicos NSParagraphSeparatorCharacter, NSLineSeparatorCharacter. Aquí está mi fuente de todo lo anterior.


0

En Swift 3, es mucho más simple

let stringA = "Terms and Conditions"
let stringB = "Please read the instructions"

yourlabel.text =  "\(stringA)\n\(stringB)"

o si está utilizando un textView

yourtextView.text =  "\(stringA)\n\(stringB)"

La publicación está etiquetada específicamente para Objective-C.
Dylan

0

En caso de que \ n o \ r no funcione y si está trabajando con uiwebview y está intentando cargar html usando la etiqueta <br> para insertar una nueva línea. No use simplemente la etiqueta <br> en NSString stringWithFormat.

En su lugar, use el mismo agregando. es decir, utilizando stringByAppendingString

 yourNSString = [yourNSString stringByAppendingString:@"<br>"];
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.