Taille d'une chaine de caractère en pixel

LeChatNoirLeChatNoir Membre, Modérateur
12:15 modifié dans API AppKit #1
Salut,

Soit une chaine de caractère (NSString).
Je calcul sa taille avec certains attributs :
NSString * aString;
NSDictionary attributs (avec font, la taille, etc).
NSSize aSize=[aString sizeWithAttributes:attributs];

Quand je teste ca me donne des résultats très étranges.

Exemple :

Je met "GGGGG" dans la chaà®ne. Ca me donne une largeur de 45.
Je met "ggggg", ca me donne également 45. Alors que dans les faits et à  l'écran, ca n'a pas du tout la même taille...

C'est normal ?

Merci !

Réponses

  • AliGatorAliGator Membre, Modérateur
    12:15 modifié #2
    Tu peux mettre ton vrai code complet, avec l'initialisation de la chaà®ne, des attributs, etc ?
  • LeChatNoirLeChatNoir Membre, Modérateur
    12:15 modifié #3
    Oui pas de pb.

    Ca se passe dans une méthod SelectionDidChange d'une outlineView.

    Quand la sélection change, je vais récupérer la chaine du nouvel item sélectionné afin de le dessiner en incrustation ailleurs.

    Voilà  le code incriminé :
    <br />NSString * siteName=[NODE_DATA([ovl itemAtRow:sRow]) name];<br />		NSDictionary * attributes = [NSDictionary dictionaryWithObjectsAndKeys:<br />			[NSFont fontWithName:@&quot;Cochin&quot; size:12], NSFontAttributeName,<br />			[[NSColor blackColor] colorWithAlphaComponent:0.6],<br />			NSForegroundColorAttributeName,<br />			nil, nil];<br />		<br />		if ([siteName sizeWithAttributes:attributes].width&gt;30)<br />			NSLog(@&quot;Ca dépasse : %f&quot;,[siteName sizeWithAttributes:attributes].width);<br />
    


    Le NSLog affiche 45 pour un iteml nomé GGGGG et la même chose pour ggggg (alors que c'est radicalement différent !).

    Merci d'avance !
  • AliGatorAliGator Membre, Modérateur
    12:15 modifié #4
    Et avec "iii" ou ".." au lieu de "ggggg" ?
  • LeChatNoirLeChatNoir Membre, Modérateur
    12:15 modifié #5
    bouah, j'suis trop bête.
    En fait, ca vient de mon if débile.
    GGGGG provoque le NSLog, ggggg non et je faisais pas gaffe dans les traces parce que j'affiche d'autres trucs donc j'avais l'impression qu'il me sortait la même chose.

    Donc pas de soucis en réalité, ça a l'air de fonctionner...

    Merci de ton aide Ali !
Connectez-vous ou Inscrivez-vous pour répondre.