используя nsattributedstring и nslocalizedstring

Мой старый код использует NSLocalizedString для отображения следующего, где outputText был NSMutableString, который содержал много таких строк в одном сеансе вывода:

[outputText appendFormat: NSLocalizedString(@"\n\n%@ and %@ are identical.  No comparison required.", @"\n\n%@ and %@ are identical.  No comparison required."), self.ipAddress, secAddress.ipAddress];

Я пытаюсь изменить цвет различных строк ipAddress, но не могу найти аналогичный метод при использовании NSMutableAttributedString.

Самая большая проблема, с которой я сталкиваюсь, заключается в том, что, поскольку вся эта строка будет локализована, я не могу надежно установить NSRange, не разбивая каждую часть отформатированного вывода.

Нужно ли мне анализировать каждую часть этой строки, преобразовывать ее в NSAttributedString и добавлять каждую часть в outputText??


person Mickey    schedule 30.11.2012    source источник
comment
Я предполагаю, что вы могли бы очень легко использовать регулярное выражение, поскольку числа на самом деле не меняются по сравнению с их арабскими цифрами в обычно локализованных форматах.   -  person CodaFi    schedule 30.11.2012
comment
Угу - ты прав. Я заблокировал регулярные выражения после того, как покончил с BGP. Спасибо за проверку реальности!   -  person Mickey    schedule 30.11.2012
comment
Вы можете использовать rangeOfString:, чтобы получить диапазон вставленных строк после их вставки. developer.apple.com/library/mac/documentation/Cocoa/Reference/:   -  person Greg    schedule 30.12.2012


Ответы (1)


Ответ: да.

Да, нужно отдельно локализовать разделы с разными атрибутами.

person Cocoanetics    schedule 15.01.2013
comment
Но при этом учитывается вариант использования, когда порядок параметров в локализованной строке обратный, например "(%1$@, %2$@)". Вот почему метод -(id)initWithFormat:... был бы хорош в классе NSAttributedString, не так ли? - person dulaccc; 11.09.2013