繁体   English   中英

如何在NSPopOver中更改NSTextField背景颜色

[英]How to change NSTextField background color in NSPopOver

在此输入图像描述

Mac OSX 10.10 Xcode 6.1

我在NSPopOver中创建了一个tableview。 我尝试更改textfield的背景颜色。 为什么? 没有效果。 tableview的亮点设置为“常规”。 哪种方式可以让我将textfields背景颜色改为白色?

在Yosemite中添加了文本字段和“vibrancy”混合的已知错误。 众所周知会影响到弹出窗口。

解决方法是将表视图的appearance属性设置为NSAppearanceNameAqua

这是证实在他们的devforums苹果工程师。

2019-05-09编辑:

此问题有时也会影响出现在背景为灰色的弹出框中的NSTextField。 这是Swift 5修复程序,将其添加到弹出控制器的viewDidLoad()函数中

self.someTextField.appearance = NSAppearance.init(名称:.aqua)

在我的应用程序中,我有同样的问题。 我使用Swift,这对我有用。 在viewForTableColumn中:

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

我非常喜欢@ Prontto的解决方案,但它不适用于NSImageView因为它没有drawsBackgroundbackgroundColor

幸运的是,外观选项也适用于图像视图!

cell.imageView?.image = image ?? nil
cell.imageView?.appearance = NSAppearance(named: NSAppearanceNameAqua)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM