2016-11-14 5 views
0

Je crée un contrôle entièrement personnalisé (NSView) et je souhaite utiliser la couleur de surbrillance préférée de l'utilisateur pour une partie de celui-ci lorsqu'il est sélectionné, comme le fait NSTableView.Quelle est la couleur de surbrillance de sélection d'un NSTableView?

Malheureusement, il ne semble pas y avoir moyen de l'obtenir. La documentation NSColor répertorie uniquement une couleur choisie par l'utilisateur (non obsolète), selectedTextBackgroundColor, et NSTableView utilise une couleur beaucoup plus sombre ou plus saturée (?) Pour la sélection en surbrillance. J'ai essayé quelques choses, comme augmenter la saturation (échoue pour le gris), et obscurcir avec shadow() (semble mauvais, et pas comme NSTableView), mais je ne suis pas un expert en couleurs.

Est-ce que quelqu'un sait ce que fait NSTableView, pour obtenir cette couleur? Y a-t-il un moyen d'y accéder plus directement?

Répondre

1

NSColor.alternateSelectedControlColor est ce que vous voulez. Les commentaires dans NSTableView.h sont quelque peu obsolètes (se référant à la couleur étant bleu clair, quand ce n'est plus). Je ne vois pas les constantes dans NSColor être dépréciées ... pas sûr de ce que vous parlez? (Dans le doute, regardez les en-têtes ...)

+0

Dans le guide "Color Programming Programs", la section "Accessing System Colours" indique: "Note: Un certain nombre de couleurs système, bien que toujours valables , ne sont plus significatifs sous Aqua, ils incluent tous ceux qui ont un "contrôle" dans leur nom. " – Naha

+0

La couleur ne semblait pas correcte dans la palette de couleurs, mais je pense qu'il y a un bug avec la mise à jour de ceux-ci. Cela semble correct dans mon application. – Naha