Affichage de texte
olivier555
Membre
Bonjour!
Alors voilà j'ai un petit problème. En fait, je dessine un trait horizontal dans ma NSImage (elle même ensuite affichée dans une NSView) de la manière suivante :
Ca c'est bon. Ensuite, j'affiche du texte par dessus :
Le dictionnaire a les attributs suivants :
Et donc le problème c'est que le trait, affiché AVANT le texte, recouvre le texte (le trait est blanc et le texte noir), et moi évidemment je souhaite l'inverse! Vous avez une idée?? Merci!
Alors voilà j'ai un petit problème. En fait, je dessine un trait horizontal dans ma NSImage (elle même ensuite affichée dans une NSView) de la manière suivante :
<br />[path moveToPoint:NSMakePoint(X - 3, Y)];<br />[path lineToPoint:NSMakePoint(round(X + 3, Y)];<br />[path stroke];<br />
Ca c'est bon. Ensuite, j'affiche du texte par dessus :
<br />[[[NSString alloc] initWithFormat:@"%@", txt] drawAtPoint:NSMakePoint(X, Y) withAttributes:dict];<br />
Le dictionnaire a les attributs suivants :
<br />[NSDictionary dictionaryWithObjectsAndKeys:[NSFont fontWithName:@"Arial" size:11],NSFontAttributeName,[NSColor blackColor], NSForegroundColorAttributeName, nil];<br />
Et donc le problème c'est que le trait, affiché AVANT le texte, recouvre le texte (le trait est blanc et le texte noir), et moi évidemment je souhaite l'inverse! Vous avez une idée?? Merci!
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Tu as un code dans ce genre là normalement, auquel cas je ne comprend pas pourquoi le sens de tracé est inversé...?:
[tt]
-(void)drawRect:(NSRect)rect
{
float X=100;
float Y=100;
NSBezierPath *path=[NSBezierPath bezierPath];
[path moveToPoint:NSMakePoint(X - 3, Y)];
[path lineToPoint:NSMakePoint(round(X + 3, Y)];
[path stroke];
[[[NSString alloc] initWithFormat:@%@", txt] drawAtPoint:NSMakePoint(X, Y) withAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[NSFont fontWithName:@Arial size:11],NSFontAttributeName,[NSColor blackColor], NSForegroundColorAttributeName, nil]];
}
[/tt]
Sinon je dessine d'abord dans une image (type NSImage) puis j'affiche cette image avec drawRect. En fait tout marche nikel sauf ça!! j'ai même essayé de changer la valeur alpha de la couleur (noir) du texte mais ya rien qui marche!!!! :crackboom:-
Et si tu dessines directement dans drawRect ça fait quoi ?
Sinon je vais essayer de dessiner dans drawRect mais je ne pense pas pouvoir l'exploiter : les fonctions de dessin sont trop complexes (beaucoup de classes et de méthodes utilisées) et je fais un portage Mac depuis un logiciel Delphi, je ne suis donc pas totalement libre au niveau de l'architecture...