Centrer verticalement mon texte dans une NSCell

muqaddarmuqaddar Administrateur
novembre 2004 modifié dans API AppKit #1
Salut les boss,

Renaud m'a dit que pour centrer verticalement un texte dans une cellule, il fallait sous-classer NSCell. Soit.
Mais ensuite , qui peut me dire quelles méthodes modifier ?
Ou alors m'apprendre à  chercher ce genre de méthode ?

Et ensuite que modifier dans une telle méthode ?

Merci.

Réponses

  • Eddy58Eddy58 Membre
    05:15 modifié #2
    Et bien Oxitan je pense qu'il faut utiliser la méthode setAttributedStringValue :). Tu lui fournis un objet NSAttributedString en modifiant la valeur de l'attribut NSBaselineOffsetAttributeName, qui devrait te permettre de régler le centrage vertical de ton texte en jouant sur son offset.
  • muqaddarmuqaddar Administrateur
    05:15 modifié #3
    Ok, si j'ai bien compris, je dosi réimplémenter cette méthode dans ma sous-classe :

    - (void)setAttributedStringValue:(NSAttributedString *)attribStr <br />{<br /><br />}
    


    Mais ensuite, je ne vois pas comment jouer avec la constante NSBaselineOffsetAttributeName ?
  • 05:15 modifié #4
    Mais non, là  il ne faut rien écraser ;)

    Dans ton tableView:objectValue:forTableColumn:atRow, tu renvoies:
    [[[NSAttributedString alloc] initWithString:[tabRegions objectAtIndex:rowIndex]<br />attributes:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithFloat:5.0],NSBaselineOffsetAttributeName,nil]] autorelease]
    


    Tu devras aussi changer la police (qui sera là  du Helvetica 12).

    Et ne me demande pas comment on fait en bindings...

    Cette méthode devrait être OK si la police utilisée dans le tableau est toujours la même et les images ont toujours la même taille. Sinon il faut sous classer.
  • muqaddarmuqaddar Administrateur
    05:15 modifié #5
    Super ça marche !
    Il fallait néanmoins mettre un nombre négatif. ;)
Connectez-vous ou Inscrivez-vous pour répondre.