NSString boundingRectWithSize devolviendo altura innecesariamente alta

Cuando usas[NSString boundingRectWithSize:options:attributes] el tamaño del rect que se devuelve es más alto de lo que esperaría para ciertas cadenas. La altura devuelta parece representar la altura máxima posible de una cadena con los atributos dados, en lugar de la altura de la cadena en sí.

Suponiendo los mismos atributos y opciones, la altura devuelta para la cadena "cars"es la misma altura devuelta para la cadena"ÉTAS-UNIS"(note el acento en la E).

Habría esperadoboundingRectWithSize para considerar solo los caracteres de la cadena dada, que en mi opinión tendrían que devolver una altura más corta para la cadena "cars".

En las capturas de pantalla adjuntas, he llenado el rect devuelto deboundingRectWithSize y resaltado en rojo lo que habría asumido que el límite debería haber sido. El ancho del rect es bastante parecido al que esperaría, pero la altura es considerablemente más alta de lo que hubiera esperado. ¿Porqué es eso?

Código de muestra:

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));

Salida:

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

Respuestas a la pregunta(3)

Su respuesta a la pregunta