2016-09-30 1 views
0

J'utilise NSTableView dans mon projet. Lorsque l'utilisateur a cliqué sur une ligne, j'utilise la couleur de sélection bleue standard. Lorsque la table perd son focus, la couleur de sélection change en couleur gris clair.NSTableView Highlight Couleur lorsque la table perd son focus

J'essaie de conserver la couleur de sélection bleue même si la table perd son focus.

J'ai déjà essayé de redéfinir backgroundStyle de NSTableCellView et je peux définir des couleurs personnalisées lorsqu'une cellule est sélectionnée ou non, mais la propriété backgroundColor est définie sur .light lorsque la table a perdu son focus.

Répondre

0

Essayez de passer outre NSTableRowView, par exemple, je garde la couleur grise:

class CustomRowView: NSTableRowView { 

override func drawSelectionInRect(dirtyRect: NSRect) { 
    NSColor.secondarySelectedControlColor().set() 
    NSRectFill(dirtyRect) 
} 
} 

Cependant, il est un peu difficile à forcer NSTableView à l'utilisateur ligne personnalisé .. Si vous utilisez grué ou storyboards ajouter une nouvelle ligne « faux » et définissez votre classe personnalisée. Définissez ensuite l'identifiant comme étant exactement "NSTableViewRowViewKey". Voici une capture d'écran la façon dont il devrait ressembler:

enter image description here

Ce point de vue de la table façon (ou vue d'ensemble - pas de différence) utilisera l'affichage de votre ligne personnalisée.

+0

Ceci est une réponse parfaite. Merci – emreoktem