Cocoa 如何在NSAttribute字符串中定义段落?

Cocoa 如何在NSAttribute字符串中定义段落?,cocoa,macos,nstextview,nsattributedstring,Cocoa,Macos,Nstextview,Nsattributedstring,我看到有一个属性名(NSParagraphStyleAttributeName)用于将段落样式应用于Cocoa中的文本。文本存储在NSAttributedString中,但是是什么定义了该字符串中的“段落”——它是换行符\n?其他角色?如果是\n,那么如何在不开始新段落的情况下创建新行。最后,当你将段落样式附加到字符串时,你必须使用整个段落的精确范围,还是可以将其放在段落的任何子范围内。如果可以是子范围,系统如何处理同一段落上的两个或多个段落样式 谢谢, Rob我从苹果公司cocoa dev邮件

我看到有一个属性名(
NSParagraphStyleAttributeName
)用于将段落样式应用于Cocoa中的文本。文本存储在
NSAttributedString
中,但是是什么定义了该字符串中的“段落”——它是换行符
\n
?其他角色?如果是
\n
,那么如何在不开始新段落的情况下创建新行。最后,当你将段落样式附加到字符串时,你必须使用整个段落的精确范围,还是可以将其放在段落的任何子范围内。如果可以是子范围,系统如何处理同一段落上的两个或多个段落样式

谢谢,
Rob

我从苹果公司cocoa dev邮件列表上的道格拉斯那里得到了答案:

我将复制他在这里写的内容:


可以使用任何标准段落分隔符(\n\r\n,Unicode段落分隔符)。使用Unicode行分隔符可以在不带段落分隔符的情况下开始新行。最好将段落样式应用于整个段落;如果不这样做,则段落样式属性将在属性固定时自动固定,以便在每个段落范围内保持不变,因为在布局时需要这样做

值得一提的是,苹果的字符串编程指南中有一节是关于段落和换行符的,NSString将为您提供段落范围,而无需搜索段落分隔符。

根据我的经验,在iOS中最好的方法是使用

@"\n\r";
我发现仅使用
\n
或甚至
0x2029
(应与NSParagraphSeparatorCharacter(未在iOS中定义))时行为不一致


使用
NSAttributedString
NSParagraphStyle
时出现了问题。。。与使用@“\n”或(0x2029)时一样,setParagraphSpacing被第一段以外的其他段落忽略。。。使用
@“\n\r”
正确地处理了段落

您是否遇到了一个段落分隔符,它不能作为换行符呈现?我自己还没有确认这一点,但这个错误看起来很不祥:这里有一个指向所引用文章的链接: