8
¿Cómo puedo tener la escala de texto para que se ajuste a los límites que le di?Obtenga el contenido de NSTextField a escala
¿Cómo puedo tener la escala de texto para que se ajuste a los límites que le di?Obtenga el contenido de NSTextField a escala
He hecho algo así en el pasado.
-(void)calcFontSizeToFitRect:(NSRect)r {
float targetWidth = r.size.width - xMargin;
float targetHeight = r.size.height - yMargin;
// the strategy is to start with a small font size and go larger until I'm larger than one of the target sizes
int i;
for (i=minFontSize; i<maxFontSize; i++) {
NSDictionary* attrs = [[NSDictionary alloc] initWithObjectsAndKeys:[NSFont fontWithName:currentFontName size:i], NSFontAttributeName, nil];
NSSize strSize = [string sizeWithAttributes:attrs];
[attrs release];
if (strSize.width > targetWidth || strSize.height > targetHeight) break;
}
[self setCurrentFontSize:(i-1)];
}
La variable de cadena es el texto que desea dimensionar. Las variables xMargin y yMargin son para el espaciado que desea. Las variables minFontSize y maxFontSize dan límites a qué tan pequeño o grande quieres ir.
wow. ¡Fantástico! ¡¡¡¡¡¡Gracias un montón!!!!!! –
Acabo de encontrar esto y me ayudó mucho, ¡gracias! –
Esto no funciona muy bien para campos de texto de líneas múltiples. –