Changer la police de caractère par défaut d'une NSTextView

FGHFGH Membre
17:09 modifié dans API AppKit #1
Bonjour à  tous,

J'ai beau m'arracher les yeux sur le code source de TextEdit et d'autres, et sur la documentation d'Apple, je n'arrive pas à  changer la police par défaut d'une NSTextView. Changer la police dans Interface Builder n'a pas d'effet. J'avais réussi quelque chose en plaçant cette ligne de code:
[[textView textStorage] setFont:[NSFont fontWithName:@"Palatino" size:18]];


comme ceci dans mon fichier myDocument.m:
- (void) textDidChange: (NSNotification *) notification<br />{<br />&nbsp; &nbsp; [self setString: [textView textStorage]];<br />	[[textView textStorage] setFont:[NSFont fontWithName:@&quot;Palatino&quot; size:18]]; // FG&nbsp; &nbsp; <br />}


ça marche, mais je ne peux plus modifier la police...

J'ai essayé d'utiliser
setUserFont:
en vain...

Quelqu'un aurait-il une idée?

Franck

Réponses

  • mpergandmpergand Membre
    17:09 modifié #2
    Salut,

    Oui, dans IB ça marche pas si le textView est vide, donc il suffit de mettre un caractère, puis de changer la fonte (on peut effacer ce caractère ensuite)

    Sinon, par code ça marche aussi:
    [textView setFont:[NSFont fontWithName:@Verdana size:14]];
  • FGHFGH Membre
    17:09 modifié #3
    Même si je rajoute du texte dans IB, ce texte n'apparaà®t pas dans ma NSTextView. J'ai testé avec le code minimal proposé par Apple dans l'article Building a text editor in 15 minutes (http://developer.apple.com/mac/library/documentation/cocoa/conceptual/TextArchitecture/Tasks/TextEditor.html), et c'est pareil, le texte saisi dans IB n'apparaà®t pas dans la NSTextView, à  cause de cette ligne:
    [[textView textStorage] setAttributedString: [self string]];
    


    D'autre part, setFont: fonctionne, mais après je ne peux plus changer la police, or il s'agit d'une NSTextView éditable...

    Merci tout de même de ta réponse.
  • mpergandmpergand Membre
    avril 2010 modifié #4
    Deux soluces:

    1) ne pas utiliser l'exemple d'Apple  :D

    2)  dans init faire:

    <br />mString =[[NSAttributedString alloc] initWithString:@&quot;Ca marche&quot; attributes:<br />	[NSDictionary dictionaryWithObject:[NSFont fontWithName:@&quot;Verdana&quot; size:18] forKey:NSFontAttributeName]];<br />
    
  • FGHFGH Membre
    17:09 modifié #5
    Le deuxième solution marche parfaitement, merci beaucoup. Quant à  la première... elle n'est pas encore de mon niveau!
Connectez-vous ou Inscrivez-vous pour répondre.