Заставьте содержание NSTextField масштабироваться

Как у меня может быть текст, масштабируют для соответствия границам, которые я дал ему?

8
задан Matt S. 25 May 2010 в 21:34
поделиться

1 ответ

В прошлом я уже делал нечто подобное.

-(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)];
}

Переменная string - это текст, размер которого вы хотите изменить. Переменные xMargin и yMargin предназначены для желаемого интервала. Переменные minFontSize и maxFontSize задают пределы того, насколько маленьким или большим вы хотите сделать текст.

21
ответ дан 5 December 2019 в 07:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: