Mac OSX 10.10 Xcode 6.1
I created a tableview in NSPopOver. I try to change textfield's background color. Why? no effect. The tableview's highlight set to "regular". which way can let me change textfields background color to white?
In my app, I had same problem. I used Swift and this worked for me. In your viewForTableColumn:
let cell = tableView.makeViewWithIdentifier(tableColumn!.identifier!, owner: self) as! NSTableCellView
cell.textField?.drawsBackground = true
cell.textField?.backgroundColor = NSColor.clearColor()
There's a known bug with text fields and the "vibrancy" blending added in Yosemite. It's known to affect popovers.
The workaround is to set the appearance
property of the table view to NSAppearanceNameAqua
.
This was confirmed by an Apple engineer in their devforums.
2019-05-09 EDIT:
This issue also sometimes affects NSTextFields that appear on popovers where the background is grey. Here's the Swift 5 fix, add this to the viewDidLoad() function of your popover controller
self.someTextField.appearance = NSAppearance.init(named: .aqua)
I really like @Prontto's solution but it does not work with NSImageView
because it has no drawsBackground
or backgroundColor
.
Fortunately the appearance option works for image views as well!
cell.imageView?.image = image ?? nil
cell.imageView?.appearance = NSAppearance(named: NSAppearanceNameAqua)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With