2010-12-09 18 views
11

Veo que hay un nombre de atributo (NSParagraphStyleAttributeName) para aplicar estilos de párrafo al texto en Cocoa. El texto se almacena en un NSAttributedString, pero ¿qué define un "párrafo" en esa cadena? ¿Es el carácter de nueva línea \n? ¿Otros personajes? Si es \n, ¿cómo se crea una nueva línea sin comenzar un nuevo párrafo? Y, por último, cuando adjuntas un ParagraphStyle a la cadena, ¿tienes que usar el rango exacto de todo el párrafo, o puedes ponerlo en cualquier subintervalo del párrafo? Si puede ser un subintervalo, ¿cómo maneja el sistema dos o más ParagraphStyles en el mismo párrafo?¿Cómo se define un párrafo en un NSAttributedString?

gracias, Rob

Respuesta

11

Tengo una respuesta de Douglas en la lista de correo de cacao-dev de Apple:

http://lists.apple.com/archives/Cocoa-dev/2010/Dec/msg00347.html

voy a copiar lo que escribió aquí:

Cualquiera de los separadores de párrafo estándar se pueden usar (\ n, \ r, \ r \ n, separador de párrafo Unicode). Use el carácter separador de línea Unicode para comenzar una nueva línea sin un salto de párrafo. Lo mejor es aplicar un estilo de párrafo a un párrafo completo; si eso no se hace, entonces el atributo de estilo de párrafo se fijará automáticamente en el tiempo de fijación de atributos para que sea constante en cada rango de párrafos, porque eso es necesario en el tiempo de diseño.

+3

¿Has encontrado un separador de párrafos que no se procesa como una nueva línea? – atreat

2

Vale la pena mencionar que la Guía de programación de cadenas de Apple tiene una sección sobre Párrafos y saltos de línea, y que NSString le dará los rangos de párrafos sin tener que buscar separadores de párrafos.

+0

Aquí hay un enlace al artículo al que se hace referencia: https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/Strings/Articles/stringsParagraphBreaks.html#//apple_ref/doc/uid/TP40005016-SW1 –

1

la mejor manera en IOS de mi experiencia es utilizar

@"\n\r"; 

me encontré con un comportamiento inconsistente con sólo usar \n o incluso 0x2029 (que debe ser el equivalente de NSParagraphSeparatorCharacter (no definido en iOS))

los problemas surgieron cuando se usa NSAttributedString y NSParagraphStyle ... como cuando se usa @ "\ n" o (0x2029) el setParagraphSpacing fue ignorado por otro que el primer párrafo ... usando @"\n\r" obtuvieron los parágrafos right

Cuestiones relacionadas