¿Cómo se define un párrafo en una NSAttributedString?
-
25-09-2019 - |
Pregunta
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 lo que define a un "párrafo" en esa cadena - que es el carácter de nueva línea \n
? ¿Otros personajes? Si se trata de un \n
, entonces ¿cómo se crea una nueva línea sin comenzar un nuevo párrafo. Y por último, cuando se conecta un ParagraphStyle a la cadena, usted tiene que utilizar el rango exacto de todo el párrafo, o se puede poner en cualquier sub-rango en el párrafo. Si puede ser un sub-rango, ¿Cómo maneja el sistema de dos o más ParagraphStyles en el mismo párrafo?
gracias, Rob
Solución
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árrafos estándar se puede utilizar (\ n, \ r, \ r \ n, Unicode separador de párrafo). Utilice el carácter separador de línea Unicode para iniciar una nueva línea sin un salto de párrafo. Lo mejor es aplicar un estilo de párrafo a un párrafo entero; Si eso no se hace, entonces el atributo de estilo de párrafo se fijará automáticamente en el momento de fijación atributo para que sea constante en cada rango párrafo, debido a que se necesita en el momento de la disposición.
Otros consejos
la mejor manera en IOS de mi experiencia es de uso
@"\n\r";
i encontré comportamiento inconsistente con sólo usando \n
o 0x2029
incluso (que debe ser el equivalente de NSParagraphSeparatorCharacter (no definida en IOS))
los problemas surgieron cuando se utiliza NSAttributedString
y NSParagraphStyle
... como cuando se usa el @ "\ n" o (0x2029) del setParagraphSpacing fue ignorada por que no sea el primer párrafo ... usando @"\n\r"
conseguido los paragraphes derecho
Podría valer la pena mencionar que Cadena de Apple Guía de programación tiene una sección sobre el párrafo y saltos de línea, y que NSString le dará los rangos de párrafo sin tener que buscar separadores de párrafos.