2015-03-16 15 views
5

enter image description hereCome cambiare colore di sfondo NSTextField in NSPopOver

Mac OSX 10.10 Xcode 6.1

ho creato un Tableview in NSPopOver. Provo a cambiare il colore di sfondo del campo di testo. Perché? nessun effetto. L'evidenziazione della vista tabella è impostata su "normale". quale via può farmi cambiare il colore di sfondo dei campi di testo in bianco?

risposta

15

C'è un bug noto con i campi di testo e la fusione "vibrancy" aggiunta in Yosemite. È noto per influenzare i popover.

Per risolvere questo problema, impostare la proprietà appearance della vista tabella su NSAppearanceNameAqua.

Questo era confirmed da un ingegnere Apple nei loro devforum.

+0

Grazie! Funziona molto bene. – CocoaUser

+0

Risposta senza prezzo. Si applica a qualsiasi altra vista. Mi stava facendo impazzire. Grazie Ken – rmvz3

+0

Sono il 10.12 e sfortunatamente questa soluzione non funziona per me. Sto avendo lo stesso tipo di problema, ma in un NSMenu personalizzato, che ritengo interno sia ancora visualizzato come popover (ma ne sono sicuro al 100%). Per ogni elemento del menu (NSMenuItem) sto impostando la mia vista personalizzata con item.view = X, quindi ho aggiunto un NSTextField in cima a X. Il campo di testo viene visualizzato perfettamente quando non disegno alcun background in drawRect di X, invece, c'è sempre questo strano colore quando disegno uno sfondo (essenzialmente quando l'elemento è evidenziato). – ggould75

7

Nella mia app, ho avuto lo stesso problema. Ho usato Swift e questo ha funzionato per me. Nella tua viewForTableColumn:

let cell = tableView.makeViewWithIdentifier(tableColumn!.identifier!, owner: self) as! NSTableCellView 
    cell.textField?.drawsBackground = true 
    cell.textField?.backgroundColor = NSColor.clearColor() 
Problemi correlati