2010-05-25 14 views

Antwort

19

Ich habe so etwas in der Vergangenheit getan.

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

Die Zeichenfolgenvariable ist der Text, den Sie sortieren möchten. Die Variablen xMargin und yMargin sind für den gewünschten Abstand vorgesehen. Die Variablen minFontSize und maxFontSize geben Grenzen vor, wie klein oder groß Sie gehen möchten.

+0

wow. Fantastisch! Vielen Dank!!!!!! –

+0

Nur gefunden, und es hat mir einen Haufen geholfen, danke! –

+1

Dies funktioniert nicht sehr gut für mehrzeilige Textfelder. –