2012-11-30 15 views
9

Mein alter Code NSLocalizedString verwendet NSLocalizedString die angezeigt werden folgende wo ein output NSMutableString war, dass viele solche Leitungen in einer einzigen Ausgabe Sitzung enthalten:NSAttributedString mit und

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

Ich versuche, die Farbe der verschiedenen zu ändern ipAddress-Zeichenfolgen, können jedoch keine ähnliche Methode finden, wenn NSMutableAttributedString verwendet wird.

Das größte Problem, das ich habe, ist, dass, da diese ganze Zeichenfolge lokalisiert wird, kann ich nicht zuverlässig die NSRange festlegen, ohne jeden Teil der formatierten Ausgabe zu brechen.

Muss ich jeden Teil dieser Zeichenfolge analysieren, in NSAttributedString konvertieren und jedes Stück an den outputText ??

+1

Ich kann mir vorstellen, dass Sie es sehr einfach regexen können, da Zahlen sich nicht wirklich von ihren arabischen Zahlenformen in häufig lokalisierten Formaten ändern. – CodaFi

+0

Ugh - du hast Recht. Ich hatte reguläre Ausdrücke ausgeblendet, nachdem ich mit BGP fertig war. Danke für den Reality Check! – Mickey

+0

Sie können 'rangeOfString:' verwenden, um den Bereich der eingefügten Strings nach dem Einfügen zu erhalten. https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/occ/instm/NSString/rangeOfString: – Greg

Antwort

3

Die Antwort ist: Ja.

Ja, Sie müssen Abschnitte mit unterschiedlichen Attributen separat lokalisieren.

+1

Aber das dauert Berücksichtigen Sie den Anwendungsfall, bei dem die Reihenfolge der Parameter in der lokalisierten Zeichenkette umgekehrt wird, zum Beispiel "" (% 1 $ @,% 2 $ @) "'. Deshalb wäre eine '- (id) initWithFormat: ...' Methode in der Klasse 'NSAttributedString' toll, findest du nicht? – dulaccc

Verwandte Themen