Question

Dans mon application, un panneau de préférences contient un NSColorWell permettant de définir une couleur d'arrière-plan et un bouton permettant d'ouvrir un NSFontPanel permettant de choisir une police.

Le comportement que je souhaite avoir est le suivant:

  • Lorsque je clique sur le NSColorWell , puis que je glisse sur une couleur du panneau, je souhaite modifier la couleur d'arrière-plan . dans mon " aperçu " zone que je fais glisser.

  • Lorsque je clique sur le lien " Changer de police ... " bouton, je montre mon NSFontPanel et lorsque je choisis une police, il doit changer dans mon " aperçu " zone aussi. Supposons que je clique sur le bouton couleur du NSFontPanel , je souhaite modifier la couleur de ma police .

Essentiellement, j'essaie de faire en sorte que les deux panneaux de couleur (bien que, d'après ce que j'ai vu, il n'y ait qu'un seul panneau partagé par application), indépendamment.

Pour le moment, disons que les panneaux de police et de couleur sont ouverts. Lorsque je clique sur le puits de couleur sur ma fenêtre, il s'active, puis si je clique sur le bouton de couleur dans le panneau de police de caractères, la couleur n'affecte pas la police mais l'arrière-plan, car le puits de couleur reste activé et je me suis enregistré pour le changement de couleur. notifications dans ma classe de contrôleur.

Quelqu'un pourrait-il me donner un exemple de méthode spécifique pour coder ce type de comportement? Il semble exister différentes façons de faire apparaître NSFontPanel et NSColorPanel ( NSFontPanel ou NSFontManager ? ), ainsi que de nombreuses façons de gérer les événements provenant des panneaux eux-mêmes (notifications? délégués (sur NSFontManager ou NSFontPanel )?? insérant le contrôleur dans la chaîne de répondeurs? ). Je n'ai trouvé aucune indication sur le moyen idéal de gérer plusieurs sources de couleurs à la fois et je suis un peu perdu.

Merci d'avance!

Était-ce utile?

La solution

Le mécanisme de sélection des couleurs est spécialement conçu pour que vous puissiez "activer" plusieurs couleurs, puis définissez leur couleur simultanément. Je crois que la raison pour laquelle le bouton de couleur du panneau de police de caractères n'est pas "relâché" du sélecteur de couleur est parce que ce n'est apparemment pas réellement un "puits de couleur". Je n'ai pas remarqué ce comportement directement, mais il est facilement reproductible avec un simple xib frais avec une couleur bien et une vue de texte standard.

Pour l’essentiel, vous pouvez cliquer à la fois sur le puits et sur la couleur de la police. Le puits et le texte sélectionné seront remplacés par la couleur sélectionnée. Vous pouvez même éteindre le puits et seul le texte changera. Toutefois, vous ne pouvez pas configurer le panneau de polices & laisser; aller " du sélecteur de couleurs jusqu'à la fermeture du panneau de polices.

Je dirais que c'est un bug: http://bugreport.apple.com

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top