Как я могу использовать оператор \t [tab] для форматирования NSString в столбцах?

Я хотел бы найти способ отформатировать NSString следующим образом:

Name:               John
Location:           Unknown
Type:               Unknown
Status:             Unknown

Прямо сейчас я использую этот код, чтобы сделать это, но результат совсем другой:

Код:

serializedValue = [serializedValue stringByAppendingFormat:@"%@:\t\t%@\n",title, value];

Где title — левый столбец, а value — второй.

Результат:

Name:       John
Location:       Unknown
Type:       Unknown
Status:     Unknown

Теперь, как вы можете видеть, постоянное добавление табуляции (\t), 2 в моем случае, не помогает, потому что некоторые слова в левом столбце длиннее, а некоторые короче. Мне интересно, есть ли простой способ сделать это, о котором я не знаю.


person Valentin Radu    schedule 14.07.2011    source источник
comment
хотите напечатать строку в консоли?   -  person    schedule 15.07.2011


Ответы (1)


NSString *titleColumn = [[NSString stringWithFormat:@"%@:", title] stringByPaddingToLength:20 withString:@" " startingAtIndex:0];
serializedValue = [serializedValue stringByAppendingFormat:@"%@%@", titleColumn, value];

Кстати, было бы более эффективно использовать NSMutableString вместо serializedValue.

person omz    schedule 14.07.2011
comment
Потрясающий! Спасибо! Работает как шарм! - person Valentin Radu; 15.07.2011
comment
Просто нужно изменить stringByAppendingFormat на stringByAppendingString :) - person Valentin Radu; 15.07.2011
comment
stringByAppendingFormat:@%@%@, titleColumn, значение] - person A-Live; 15.07.2011
comment
Как насчет немоноширинного шрифта? - person Fury; 03.01.2015