NSString boundingRectWithSize retornando altura desnecessariamente alta

Ao usar[NSString boundingRectWithSize:options:attributes] o tamanho do rect que é retornado é mais alto do que eu esperaria para certas strings. A altura retornada parece representar a altura máxima possível de uma sequência com os atributos fornecidos, em vez da altura da própria sequência.

Supondo os mesmos atributos e opções, a altura retornada para a sequência "cars"é a mesma altura retornada para a sequência"ÉTAS-UNIS"(observe o acento no E).

Eu teria esperadoboundingRectWithSize considerar apenas os caracteres na sequência especificada, o que, na minha opinião, retornaria uma altura menor, t para a sequência "cars"

Nas capturas de tela anexadas, preenchi o texto retornado deboundingRectWithSize e descrevi em vermelho o que eu teria assumido que o retângulo delimitador deveria ter sido. A largura do retângulo é praticamente como eu esperaria, mas a altura é consideravelmente mais alta do que eu esperava. Por que é que?

Código de amostra:

NSRect boundingRect = NSZeroRect;
NSSize constraintSize = NSMakeSize(CGFLOAT_MAX, 0);

NSString *lowercaseString = @"cars";
NSString *uppercaseString = @"ÉTAS-UNIS";
NSString *capitalizedString = @"Japan";

NSFont *drawingFont = [NSFont fontWithName:@"Georgia" size:24.0];
NSDictionary *attributes = @{NSFontAttributeName : drawingFont, NSForegroundColorAttributeName : [NSColor blackColor]};

boundingRect = [lowercaseString boundingRectWithSize:constraintSize options:0 attributes:attributes];
NSLog(@"Lowercase rect: %@", NSStringFromRect(boundingRect));

boundingRect = [uppercaseString boundingRectWithSize:constraintSize options:0 attributes:attributes];
NSLog(@"Uppercase rect: %@", NSStringFromRect(boundingRect));

boundingRect = [capitalizedString boundingRectWithSize:constraintSize options:0 attributes:attributes];
NSLog(@"Capitalized rect: %@", NSStringFromRect(boundingRect));

Resultado:

Lowercase rect: {{0, -6}, {43.1953125, 33}}
Uppercase rect: {{0, -6}, {128.44921875, 33}}
Capitalized rect: {{0, -6}, {64.5, 33}}

questionAnswers(3)

yourAnswerToTheQuestion