2011-02-07 5 views
0

J'essaye de changer la couleur d'arrière-plan d'une partie de texte qui est choisie par l'utilisateur à une couleur différente (pour ajouter une évidence) au texte. Maintenant, je l'ai essayé le:Définir la couleur d'arrière-plan du texte sélectionné dans NSTextView?

  • (void) setSelectedTextAttributes: (*) NSDictionary attributs
méthode

mais qui ne change la couleur d'arrière-plan de la sélection. J'ai besoin de changer la couleur de fond du texte pour qu'il reste en surbrillance.

+0

duplication possible de [Changer la couleur de sélection de texte dans NSTextView] (http://stackoverflow.com/questions/4300272/changing-text-selection-color-in-nstextview) –

+0

Pas un dup. Cela fait référence à la modification de la couleur de la surbrillance (lorsque le texte est sélectionné) et ne conserve pas la couleur d'arrière-plan une fois que la sélection a été modifiée. – Ben

Répondre

0

Comme vous l'avez découvert, les attributs de texte sélectionnés s'appliquent uniquement au texte lorsqu'il est sélectionné. Si vous souhaitez ajouter certains attributs au texte sélectionné qui persiste, vous devez appliquer ces attributs à l'objet NSTextStorage sous-jacent (qui est juste une sous-classe de NSMutableAttributedString).

La façon de le faire est d'utiliser la méthode de vue du texte textStorage puis appliquer les attributs à l'aide de la méthode addAttributes:range: (ou setAttributes:range: selon que vous souhaitez ajouter aux attributs texte existant ou les remplacer complètement).

Questions connexes