Fonte de aparência UILabel e fonte de string atribuída

No meu aplicativo, eu tenho uma fonte personalizada global aplicada a todos os rótulos, assim:

UIFont *font = [UIFont fontWithName:kMyFontName size:15.0]; 
[[UILabel appearance] setFont:font];

Isso funciona bem. No entanto, em alguns casos, quero poder especificar uma fonte diferente para uma região específica de uma string UILabel.

Então, eu tenho algo parecido com isto:

NSString *string = @"Foo Bar Baz";
UIFont *boldFont = [UIFont fontWithName:kMyBoldFontName size:15.0]; 
NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:string];
[attrString setAttributes:@{ NSFontAttributeName: boldFont } range:NSMakeRange(0, 3)];
self.myLabel.attributedText = attrString;

No entanto, isso não parece funcionar. Eu espero que o "Foo" fique em negrito, mas toda a string tem apenas a fonte padrão. É como se a fonte em negrito não fosse aplicada e estivesse sendo substituída pela fonte definida no proxy de aparência do UILabel.

Quando removo a linha de aparência UILabel, ela funciona bem (posso ver parte da string em negrito). Basicamente, quero ter minha fonte personalizada aplicada ao rótulo, mas uma fonte separada aplicada a uma região diferente da string. Normalmente, isso funciona bem com seqüências de caracteres atribuídas, mas, por algum motivo, a configuração da fonte de aparência UILabel desativa essa funcionalidade (ou assim parece).

Resultados esperados: "Foo Bar Baz "Resultados reais: "Foo Bar Baz"

Se eu remover o[[UILabel appearance] setFont:] linha então funciona:

"Foo Bar Baz "

(mas a fonte personalizada não está definida no restante da cadeia).

Portanto, minha pergunta é: Existe uma maneira de especificar uma única fonte para usar como padrão em todo o aplicativo, mas ainda assim poder substituí-la parcialmente usando seqüências de caracteres atribuídas?

Além disso, se alguém puder me explicar por que isso não está funcionando, eu agradeceria.

questionAnswers(3)

yourAnswerToTheQuestion