J'essaie de sous-classer NSCell
pour dessiner une surbrillance de fond personnalisée. La documentation semble suggérer que le highlight:withFrame:inView:
déroutant devrait me permettre de faire ceci mais la méthode n'est jamais appelée.NSCell Custom Highlight
Au lieu de cela, j'ai remplacé drawInteriorWithFrame:inView:
qui fonctionne bien - je peux dessiner ce que je veux dans la cellule. Cependant, la question est que je dois tirer tout moi-même, perdre la fonctionnalité du type de NSCell J'étends - par exemple la capacité d'un NSTextFieldCell pour afficher le texte:
personnalisé dessiné cellule mise en surbrillance:
Cependant, je veux juste redessiner l'arrière-plan (le point culminant), et de conserver la possibilité d'utiliser la fonctionnalité principale de la cellule étendue:
Je pourrais, bien sûr, simplement dessiner moi-même le texte, mais j'espère qu'il y a un moyen plus simple de le faire.
Toute aide est très appréciée.
Envoyez-vous '[super drawInteriorWithFrame: cellFrame inView: controlView];' (avec les noms de paramètres que vous utilisez) après avoir dessiné votre arrière-plan personnalisé? –
@Bavarious - Si je fais cela, l'arrière-plan personnalisé est perdu. Le résultat est le même que celui de la deuxième capture d'écran, car je suppose que cette méthode tire aussi son propre arrière-plan. – JoeR
Ah, gotcha. Ne pouvez-vous pas définir une couleur de surbrillance transparente afin que 'super' ne dérange pas votre surbrillance personnalisée, et ensuite vous utilisez' -isHighlighted' dans '-drawInterior ...' pour décider comment dessiner l'arrière-plan? –