Изменить длину табуляции (\t) при использовании stringWithFormat?

Я хотел бы указать длину табуляции или позиции табуляции при использовании \t в функции stringWithFormat:

buttonText3 = [NSString stringWithFormat:@"D:\t%ld:%02ld" , hoursAndMinutesDay.hours,hoursAndMinutesDay.minutes];

Я уже пытался использовать backspace после табуляции, но это не работает:

[NSString stringWithFormat:@"D:\t%c%ld:%02ld", 0x0008, hoursAndMinutesDay.hours,hoursAndMinutesDay.minutes];

Использование нескольких пробелов вместо \t недопустимо, поскольку текст перед \t имеет разную ширину в зависимости от символов.


person vomako    schedule 14.03.2014    source источник
comment
Что вы делаете со строкой после ее создания (что выводит ее на экран)?   -  person Wain    schedule 14.03.2014
comment
stackoverflow.com/questions/6699930/ и stackoverflow.com/questions/6860633/   -  person iPatel    schedule 14.03.2014
comment
@iPatel Он сказал, что пробелы ему не подходят.   -  person DrummerB    schedule 14.03.2014
comment
@Wain: я хочу отобразить его в UITextLabel.   -  person vomako    schedule 14.03.2014
comment
Вы всегда можете получить длину строки раньше и решить, сколько пробелов добавить...   -  person Wain    schedule 14.03.2014
comment
@Wain: отдельные символы имеют разную ширину.   -  person vomako    schedule 15.03.2014


Ответы (1)


Нет. Отображение символов табуляции находится вне контроля NSString.

Если вы используете Cocoa API, такой как UITextView, для отображения строки, вы можете использовать NSAttributedString и NSParagraphStyle, чтобы установить позиции табуляции для отображения.

person Greg Parker    schedule 14.03.2014