2010-01-11 7 views
6

J'ai besoin de comprendre la longueur de pixel d'un NSString dans Cocoa sur OSX et j'ai trouvé quelques liens qui décrivent comment faire cela en utilisant l'IPhone sdk mais Je n'ai rien vu sur la façon de le faire lorsque je ne cible pas l'iPhone. Quelqu'un peut-il me lier à certains documents qui seraient pertinents. J'ai trouvé quelque chose dans les documents NSString.Détermination de la longueur de pixel d'une chaîne dans Cocoa (MAC OSX)

+2

Ne pensez pas aux pixels: ils sont un artefact d'un périphérique. Sauf si vous parlez directement à un périphérique ou si vous travaillez directement avec un tampon raster ("bitmap"), vous ne travaillez pas avec les pixels. Les opérations vectorielles, y compris la mesure et le dessin des chaînes, fonctionnent avec les unités d'espace utilisateur: http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/CocoaDrawingGuide/Transforms/Transforms.html#//apple_ref/doc/uid/TP40003290-CH204-SW5 –

Répondre

7
+3

en note: la raison pour laquelle vous ne pouviez pas le trouver dans les docs NSString est qu'il dépend de plusieurs choses dans AppKit, il appartient donc à une catégorie distincte. – cobbal

4

Voici ce que j'utilise pour obtenir la taille d'une chaîne ...

NSSize size = [@"Some text" sizeWithAttributes:[NSDictionary dictionaryWithObject:[NSFont fontWithName:@"Helvetica Neue Bold" size:24.0f] forKey:NSFontAttributeName]]; 

REMARQUE: Si vous ajoutez la chaîne à un champ de texte, j'ai trouvé que vous besoin d'ajouter environ 10 à size.width pour qu'il s'adapte.