Sto usando una vista tabella basata sulla vista e non voglio che disegni NSTextField con il colore del testo bianco quando è selezionato. Non sono riuscito a trovare una soluzione funzionante. Quindi qualsiasi aiuto è molto apprezzato.Come disattivare il colore del testo bianco nella selezione in NSTableView basato su visualizzazione?
Ecco il mio problema:
voglio che la "selezione è bianca" text anche essere disegnato nel colore del testo di default.
Finora ho capito che
- Impostazione attributi in
tableView:viewForTableColumn:item:
non aiuta - Impostazione
NSTextField
colore a un colore personalizzato, che è qualcosa di diverso rispetto al colore predefinito di controllo, impedirà di disegno in bianco ma perde ancora lo stile del carattere (grassetto, corsivo, ecc.). - L'impostazione
NSTableView
diselectionHighlightStyle
attribuisce aNSTableViewSelectionHighlightStyleNone
il trucco ma non verrà ridisegnatoNSTableRowView
. Anche lo stile scelto non è quello che voglio. Voglio il primo clic per selezionare la riga e il secondo clic per modificare il campo di testo. Quando si utilizzaNSTableViewSelectionHighlightStyleNone
, il primo clic inizia a modificare il campo di testo. - Il colore del testo non cambia se il NSTextField è bordato. Ma non voglio campi di testo con bordi (come mostrato nello screenshot I campi di testo sono modificabili)
Non riuscivo a capire 'come' il campo di testo ottiene il colore bianco. Ho sostituito setTextColor:
e mi sono reso conto che non viene mai chiamato quando la selezione viene modificata. Quindi immagino che NSAttributedString sia costruito da qualche parte all'interno della routine di disegno/selezione di NSTableView.
Qualsiasi aiuto è molto apprezzato.
Oh. Grazie. Ho appena "settato" disabilitato. Per swift è: 'override var backgroundStyle: NSBackgroundStyle {get {return .Dark} set {}}' – surfrider