Alignement de texte
petitjean
Membre
Dans la construction d'une procédure d'impression, je définis une NSRect aRect puis un tableau d'attributs afin d'utiliser la méthode drawInRect:aRect withAttributes:attributes.
J'ai trouvé comment définir les attributs de "fonts" et de "color". Mais je ne trouve aucun exemple pour choisir un mode d'alignement du texte.
Mon projet est le suivant :dans une suite de NSRect je voudrais aligner le texte à droite, afin d'imprimer en tableau verticalement, des valeurs numériques.
Faut il ajouter des attributs au tableau d'attributs, et comment ? Ou bien faut il utiliser un autre procédé pour définir le mode d'alignement ?
Merci pour votre aide.
J'ai trouvé comment définir les attributs de "fonts" et de "color". Mais je ne trouve aucun exemple pour choisir un mode d'alignement du texte.
Mon projet est le suivant :dans une suite de NSRect je voudrais aligner le texte à droite, afin d'imprimer en tableau verticalement, des valeurs numériques.
Faut il ajouter des attributs au tableau d'attributs, et comment ? Ou bien faut il utiliser un autre procédé pour définir le mode d'alignement ?
Merci pour votre aide.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Il me semble que les alignements sont gérés par le NSParagraphStyle.
Mais je sais pas comment l'exploiter sans le Ruler d'une NSView ...
attributes = [[NSMutableDictionary ]init];
[attributes setObject:[NSFont fontWithName:@Courier size:14]
            forkey:NSFontAttributeName];
[attributes setObject: [NSParagraphStyle NSTextAlignement.NSRightTextAlignment]
          forKey:NSParagraphAttributeName];
Mais cela ne marche pas ?
As tu un NSRuler associé ?
Je ne sais pas me servir d'un NSRuler ? J'ai repris le modèle que l'on trouve dans "Cocoa par la pratique" pour créer des procédures d'impression ou pour afficher du texte à l'écran dans une NSView, ils ne parlent à aucun moment de NSRuler ?
Il me semble que les NSRuler sont responsables de l'affichage (et de la modification via leur interface graphique) des attributs de paragraphe. Ils sont associées aux NSTextViews, mais je sais pas si on peut en adjoindre dans un autre type de view.
A mon sens, si tu dessines toi même ton texte en dehors d'une textView (ou sousClasse), c'est à ta méthode drawRect de s'occuper elle même de l'alignement ...
L'exemple ci-dessous utilise une NSAttributedString, puis utilise l'attribut NSParagraphStyleAttributeName avec un objet NSMutableParagraphStyle. Ce NSMutableParagraphStyle est initialisé avec un alignement à droite (NSRightTextAlignment). Enfin, il ne reste plus qu'à "dessiner" cette chaà®ne dans la view :
[tt]
- (void)drawRect:(NSRect)rect
{
NSAttributedString *as;
NSDictionary *at;
NSMutableParagraphStyle *ps;
ps=[[NSMutableParagraphStyle alloc] init];
[ps setAlignment:NSRightTextAlignment];
at=[NSDictionary dictionaryWithObjectsAndKeys:ps, NSParagraphStyleAttributeName, nil];
[ps release];
as=NSAttributedString alloc] initWithString:@"je fais un test de cadrage à droite." attributes:at];<br /><br /> [as drawInRect:[self bounds;
[as release];
}
[/tt]
.
ex :
_ Tu fais quoi dans la vie ?
_ Je développe en ObjectiveC / Bru
_ Ah cool
ou :
_ j'ai acheté un super bouquin : Bru par la pratique
Mais comment fait il ??Â
Purée !!
Tu l'as trouvé ou où ce bouquin ?
Aux éditions Smileys© ?
J'en veux un moi aussi !
En attendant merci pour le dépannage, la théorie que l'on trouve dans les bouquins est souvent inutilisable tant que l'on ne trouve pas de bons exemples.