Mac OSX 10.10 Xcode 6.1
我在NSPopOver中创建了一个tableview。 我尝试更改textfield的背景颜色。为什么?没有效果。 tableview的亮点设置为“常规”。 哪种方式可以让我将textfields背景颜色改为白色?
答案 0 :(得分:20)
在Yosemite中添加了文本字段和“vibrancy”混合的已知错误。众所周知会影响到弹出窗口。
解决方法是将表格视图的appearance
属性设置为NSAppearanceNameAqua
。
Apple工程师在他们的存档中发现了confirmed。
2019-05-09编辑:
此问题有时也会影响背景为灰色的弹出窗口中出现的NSTextField。这是Swift 5修复,将其添加到弹出控制器的viewDidLoad()函数
self.someTextField.appearance = NSAppearance.init(名称:.aqua)
答案 1 :(得分:9)
在我的应用中,我遇到了同样的问题。我使用Swift,这对我有用。在viewForTableColumn中:
let cell = tableView.makeViewWithIdentifier(tableColumn!.identifier!, owner: self) as! NSTableCellView
cell.textField?.drawsBackground = true
cell.textField?.backgroundColor = NSColor.clearColor()
答案 2 :(得分:0)
我非常喜欢@ Prontto的解决方案,但它不适用于NSImageView
,因为它没有drawsBackground
或backgroundColor
。
幸运的是,外观选项也适用于图像视图!
cell.imageView?.image = image ?? nil
cell.imageView?.appearance = NSAppearance(named: NSAppearanceNameAqua)