2012-11-30 21 views
9

Benim eski kodu nslocalizedstring gösterilecek NSLocalizedString kullanan outputText tek çıkış oturumda bu tür birçok çizgiler içeren bir NSMutableString nerede aşağıdadır:nsattributedstring kullanarak ve

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

Çeşitli rengini değiştirmeye çalışıyorum ipAdres dizeleri, ancak NSMutableAttributedString kullanırken benzer bir yöntem bulamıyor.

Karşılaştığım en büyük sorun, bu dizenin tümünün yerelleştirileceğinden, biçimlendirilmiş çıktının her bölümünü kesmeden NSRange'ı güvenli bir şekilde ayarlayamamam.

Bu dizenin her bir parçasını incelemek, NSAttributedString öğesine dönüştürmek ve her parçayı outputText'e eklemek zorunda mıyım?

+1

Çok basit bir şekilde yeniden düzenleyebileceğinizi hayal ediyorum; çünkü rakamlar, genellikle yerelleştirilmiş biçimlerdeki arapça sayı biçimlerinden gerçekten değişmediği için. – CodaFi

+0

Ugh - haklısınız. BGP ile bittikten sonra düzenli ifadeleri engellerdim. Gerçeklik kontrolü için teşekkürler! – Mickey

+0

Ekledikten sonra dizeleri eklemek için rangeOfString: 'kullanabilirsiniz. https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/occ/instm/NSString/rangeOfString: – Greg

cevap

3

Yanıt: evet.

Evet, bölümleri farklı özelliklerle ayrı ayrı yerelleştirmeniz gerekir.

+1

Ancak bu Parametre sırasının yerelleştirilmiş dizgede ters çevrildiği durum örneğini, örneğin, "" (% 1 $ @,% 2 $ @) "' yi hesaba katar. İşte bu yüzden bir '- (id) initWithFormat: ...' yöntemi 'NSAttributedString' sınıfında harika olurdu, sence de öyle değil mi? – dulaccc

İlgili konular