特定の部分文字列を黄色にしたい。レイアウトのローカライズが悪夢になるため、複数の UILabels に分割したくありません。だから私はこれを行います:
NSMutableAttributedString* instructions = [[[NSMutableAttributedString alloc] initWithString:self.o_instructionsLabel.text] autorelease];
NSRange range = [instructions.string rangeOfString:@"FOOBARBAZ"];
if (range.length > 0)
{
[instructions addAttribute:NSForegroundColorAttributeName value:[UIColor yellowColor] range:range];
self.o_instructionsLabel.attributedText = instructions;
}
ただし、ラベルのテキスト全体は白のままです。これは、すべての例がそれを行う方法のようです。範囲が正しいことを確認しました。instructions
オブジェクトをダンプすると、属性が本来あるべき場所にインラインで表示されます。
私は何を間違っていますか?