[50% Résolu] Hauteur d'un NSTextField
Philippe49
Membre
:why?:Le sujet a souvent été abordé, dans ce post par exemple mais je ne trouve pas la réponse satisfaisante au problème suivant :
Comment, lorsqu'on change la police, ajuster la hauteur d'un NSTextField, à largeur constante,.
J'ai essayé les solutions du post, et d'autres, mais je bute à chaque fois sur le centrage vertical du texte dans le NSTextField. Il y a un automatisme (du style setVerticalAlignment: de NSTextBlock) dans les NSTextField que je n'arrive pas à régler.
Là OK, mon NSTextView est de la bonne hauteur, mais la cell n'est pas dessinée au bon endroit.
Comment, lorsqu'on change la police, ajuster la hauteur d'un NSTextField, à largeur constante,.
J'ai essayé les solutions du post, et d'autres, mais je bute à chaque fois sur le centrage vertical du texte dans le NSTextField. Il y a un automatisme (du style setVerticalAlignment: de NSTextBlock) dans les NSTextField que je n'arrive pas à régler.
<br />Dans MyTextField, sous-classant NSTextField<br /><br />-(void) viewWillDraw<br />{ <br /> float width=[self frame].size.width;<br /> NSSize cellSize=[[self cell] cellSizeForBounds:NSMakeRect(0.,0.,width,MAXFLOAT)]; <br /> NSSize newSize=NSMakeSize(width,cellSize.height);<br /> [self setFrameSize:NSMakeSize(width,cellSize.height)];<br /><br /> // [self updateCell:cell]; <==> ne change rien<br /><br />}<br />
Là OK, mon NSTextView est de la bonne hauteur, mais la cell n'est pas dessinée au bon endroit.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
La preuve :
L'inclusion de [cell attributedStringValue]; dans le code change le comportement
-(void) viewWillDraw
{
id cell=[self cell];
NSLog(@%@",[cell attributedStringValue]);
// Resize
float width=[self frame].size.width;
NSSize cellSize=[cell cellSizeForBounds:NSMakeRect(0.,0.,width,MAXFLOAT)];
NSSize newSize=NSMakeSize(width,cellSize.height);
[self setFrameSize:newSize];
// [self updateCell:cell]; <==> ne change rien
}
for(id view in [self subviews]){
[view setAutoresizingMask:NSViewHeightSizable];
}
... un petit peu d'encouragement
C'est réconfortant d'avoir des crocodiles dans son entourage
Bon, j'ai trouvé tout seul, mais je suis devenu fou ... :brule:
Apparemment c'est l'option Rich Text qui semble engendrer un traitement spécial par les Glyphs et sans doute une utilisation de CoreGraphics en direct.