Texte Stylé : propriétés accessibles en Cocoa ?

GastonGaston Membre
02:50 modifié dans API AppKit #1
bonjour ;)

je souhaite connaà“tre (et modifier) les propriétés de style (gras, italique, souligné...) du texte contenu dans un NSTextView... évidemment la fonction selectedTextAttributes ne convient pas... y a-t-il un moyen d'accéder à ces propriétés en cocoa ? j'ai un peu cherché mais rien trouvé...

je souhaiterais savoir, caractère par caractère, s'il est en gras, souligné, centré, etc, pour faire une sorte de "convertisseur"...

merci d'avance

Réponses

  • 02:50 modifié #2
    Tout est dans le textStorage de ta NSTextView, que tu obtiens en faisant [maTextView textStorage]. NSTextStorage est une sous-classe de NSMutableAttributedString, donc tu peux y appliquer toutes les modifications, et les accès d'attributs que tu juges nécessaire (il y a juste pour le gras et l'italique ou c'est moins évident, dans la mesure où c'est un attribut de la police et non du storage).
  • GastonGaston Membre
    02:50 modifié #3
    oki je vais chercher dans cette voie

    merci beaucoup :)
  • gibet_bgibet_b Membre
    02:50 modifié #4
    J'ai un problème pour récupérer le contenu d'un NSTextView, pour le mettre dans une variable de type NSMutableAttributedString.

    Si je fais :
    NSMutableAttributedString *t;<br />t = [[NSMutableAttributedString alloc] initWithString:@&quot;Ceci est un test&quot;];<br />[maNote setCorpsNote:t];
    


    Ca fonctionne (la valeur est bien mise dans la propriété corpsNote de maNote). Mais si je fais :
    [maNote setCorpsNote:[noteField textStorage]];
    

    ça marche pô !

    Je m'arrache un peu les cheveux !

    Merci d'avance !
  • BruBru Membre
    02:50 modifié #5
    Comme ça été dit à  maintes reprises ici, il n'y a qu'[size=12pt]1 seul[/size] field editor par fenêtre.
    Donc, tous les éléments de l'interface qui ont du texte, et qui sont éditables se partagent le même textStorage (qui est sous-classe de NSAttributedString).
    Le textStorage contient donc le contenu du champ éditable qui a le focus (si aucun champ n'a le focus, textStorage retourne une chaà®ne vide).

    Comme tu ne sembles pas faire de copie du textStorage avant de le mettre dans ta note, la chaà®ne stylée que ta note mémorise va être constamment modifiée en fonction des différents textes édités dans la fenêtre.

    Fais un :
    [maNote setCorpsNote:[[noteField textStorage] copy]];
    


    .
Connectez-vous ou Inscrivez-vous pour répondre.