How is a paragraph defined in an NSAttributedString?

Rob N picture Rob N · Dec 10, 2010 · Viewed 10k times · Source

I see that there is an attribute name (NSParagraphStyleAttributeName) for applying paragraph styles to text in Cocoa. Text is stored in an NSAttributedString, but what defines a "paragraph" in that string -- is it the newline character \n? Other characters? If it's a \n, then how do you create a new line without starting a new paragraph. And lastly, when you attach a ParagraphStyle to the string, do you have to use the exact range of the whole paragraph, or can you put it on any sub-range in the paragraph. If it can be a sub-range, how does the system handle two or more ParagraphStyles on the same paragraph?

thanks, Rob

Answer

Rob N picture Rob N · Dec 12, 2010

I got an answer from Douglas on Apple's cocoa-dev mailing list:

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

I'll copy what he wrote here:

Any of the standard paragraph separators can be used (\n, \r, \r\n, Unicode paragraph separator). Use the Unicode line separator character to start a new line without a paragraph break. It is best to apply a paragraph style to an entire paragraph; if that is not done, then the paragraph style attribute will be automatically fixed at attribute fixing time so that it is constant over each paragraph range, because that is needed at layout time.