Как абзац определяется в NSAttributedString? - PullRequest
13 голосов
/ 10 декабря 2010

Я вижу, что есть имя атрибута (NSParagraphStyleAttributeName) для применения стилей абзаца к тексту в Какао.Текст хранится в NSAttributedString, но что определяет «абзац» в этой строке - символ перевода строки \n?Другие персонажи?Если это \n, то как создать новую строку без начала нового абзаца.И наконец, когда вы присоединяете ParagraphStyle к строке, вам нужно использовать точный диапазон всего абзаца или вы можете поместить его в любой поддиапазон в абзаце.Если это может быть поддиапазон, как система обрабатывает два или более ParagraphStyles в одном и том же абзаце?

спасибо, Роб

Ответы [ 3 ]

13 голосов
/ 12 декабря 2010

Я получил ответ от Дугласа в списке рассылки Apple по какао:можно использовать стандартные разделители абзацев (\ n, \ r, \ r \ n, разделитель абзацев Unicode).Используйте символ разделителя строк Unicode, чтобы начать новую строку без переноса абзаца.Лучше всего применять стиль абзаца ко всему абзацу;если это не сделано, то атрибут стиля абзаца будет автоматически зафиксирован во время фиксации атрибута, чтобы он был постоянным во всех диапазонах абзаца, потому что это необходимо во время макета.

3 голосов
/ 09 января 2016

лучший способ в iOS из моего опыта - использовать

@"\n\r";

Я обнаружил противоречивое поведение, просто используя \n или даже 0x2029 (что должно быть эквивалентно NSParagraphSeparatorCharacter (не определеноiOS))

проблемы возникли при использовании NSAttributedString и NSParagraphStyle ... как при использовании @ "\ n" или (0x2029) setParagraphSpacing был проигнорирован, кроме первого абзаца ...используя @"\n\r" получил параграфы правильно

2 голосов
/ 13 декабря 2010

Возможно, стоит упомянуть, что в Руководстве по программированию Apple String есть раздел, посвященный абзацам и переносам строк, и что NSString предоставит вам диапазоны абзацев без необходимости искать разделители абзацев.

...