NSAttributedString double «ff» считается единственным «f» при использовании системного шрифта в iOS 7

Я обнаружил странное поведение NSAttributedString в iOS 7 с системным шрифтом при использовании строки «ff». Это считается одной буквой. Вот результат и код для тестирования.

аааааа

FFFFFF

Это ошибка или функция? Как я могу избавиться от этого без изменения шрифта?

Если я заменю шрифт на что-либо еще, буквы будут правильно окрашены.

@property (nonatomic) IBOutlet UILabel *testText - (void)testALetter { NSDictionary *blackText = @{NSForegroundColorAttributeName : [UIColor blackColor], NSFontAttributeName : [UIFont systemFontOfSize:48]}; NSDictionary *orangeText = @{NSForegroundColorAttributeName : [UIColor orangeColor], NSFontAttributeName : [UIFont systemFontOfSize:48]}; NSRange range = NSMakeRange(2, 1); NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:@"aaaaaa" attributes:blackText]; [attributedString setAttributes:orangeText range:range]; [self.testText setAttributedText:attributedString]; } - (void)testFLetter { NSDictionary *blackText = @{NSForegroundColorAttributeName : [UIColor blackColor], NSFontAttributeName : [UIFont systemFontOfSize:48]}; NSDictionary *orangeText = @{NSForegroundColorAttributeName : [UIColor orangeColor], NSFontAttributeName : [UIFont systemFontOfSize:48]}; NSRange range = NSMakeRange(2, 1); NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:@"ffffff" attributes:blackText]; [attributedString setAttributes:orangeText range:range]; [self.testText setAttributedText:attributedString]; } 

Этого можно ожидать. Это особенность шрифта, называемого лигатурой .

Проверьте NSLigatureAttributeName для параметров, связанных с лигатурами.