2014-02-09 3 views
0

У меня есть UITextView с элементами вида:UITextView ломает

artist1 - song name1, artist2 - song name 2, 
artist3 - song name3, etc. 

Я только хочу, чтобы запретить переносы строк только между художниками (после запятой, до следующего художника), так что это будет некорректно:

artist 1 - song name1, artist 2 - // <- invalid break 
song name 2. 

Я пробовал два подхода для этого: во-первых, я помещал вещи в веб-просмотр, что делало это тривиальным для решения. К сожалению, это невозможно по ряду других причин.

Во-вторых, я добавил _, где есть белые пространства и спрятали их, как это:

artist_1_-_song_name1, artist_2_-_song_name_2, etc // <- setting colour of _ to invisible. 

Это почти работал, но теперь он распадается на дефис, например:

artist_1_- 
song_name1 

Сначала я ищу хороший способ решить эту проблему. Если это не сработает, я бы согласился на Unicode Char, который выглядит как тире, но не сломается (горизонтальная панель U + 2015 слишком длинная)

Редактировать: просто узнал о символе Unicode 'NON -BREAKING HYPHEN '(U + 2011), поэтому, пока проблема технически решена, я все еще ищу менее хакерский способ сделать это.

ответ

3

Что вы хотите - это не разрывное пространство, или символ Unicode u + 00a0.

NSString *nonbreakingspace = @"\u00A0"; 
NSString *nonbreakinghyphen = @"\u2011"; 

заменить пробелы в artist1 - песня name1 со строкой неразрывный пробел и дефис с не дефиса nonbreakinghyphen строки.

NSString *text = ...; 
text = [text stringByReplacingOccurrencesOfString:@" " withString:nonbreakingspace]; 
text = [text stringByReplacingOccurrencesOfString:@"-" withString:nonbreakinghyphen]; 
myTextView.text = text; 
+0

спасибо. Фактически выяснил это сам вскоре после обнаружения не нарушающего дефиса :). – Reason

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