2010-12-09 2 views
11

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

спасибо, Роб

ответ

11

Я получил ответ от Дугласа в списке какао-DEV рассылки от Apple:

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

я копировать то, что он писал здесь:

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

+3

Вы столкнулись с разделителем абзацев, который не отображается в качестве новой строки? – atreat 2013-05-22 17:45:09

2

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

+0

Ссылка на статью, указанную ниже: https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/Strings/Articles/stringsParagraphBreaks.html#//apple_ref/doc/uid/TP40005016-SW1 – 2015-06-26 11:00:28

1

лучший способ прошивки из моего опыта заключается в использовании

@"\n\r"; 

я нашел непоследовательное поведение только с помощью \n или даже 0x2029 (который должен быть эквивалентом NSParagraphSeparatorCharacter (не определена прошивка))

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

Смежные вопросы