8
Как я могу получить шкалу текста, чтобы она соответствовала границам, которые я дал?Получить содержимое NSTextField для масштабирования
Как я могу получить шкалу текста, чтобы она соответствовала границам, которые я дал?Получить содержимое NSTextField для масштабирования
Я сделал что-то подобное в прошлом.
-(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)];
}
Строковая переменная - это текст, который вы хотите. Переменные xMargin и yMargin относятся к интервалу, который вы хотите. Переменные minFontSize и maxFontSize дают ограничения на то, насколько малы или большие вы хотите.
ничего себе. Фантастика! Огромное спасибо!!!!!! –
Просто нашел это, и это помогло мне кучу, спасибо! –
Это не очень хорошо работает для многострочных текстовых полей. – 2011-04-05 13:57:56