免责声明:这个问题是对this问题的扩展
我试图在NSPopover中填充一个表。(如图中所示)
问题:
我无法为NSTextField制作透明的背景。
奇怪的是,如果将视图附加到NSWindow,它就会工作得很好。
(左边窗口中的名称具有透明的背景,但在NSPopover中看到的相同视图无法向NSTextfield显示透明背景。)

这是NSPopover中的一个bug,还是我做错了什么?
这是我创建表格单元格的代码
func tableView(tableView: NSTableView, viewForTableColumn tableColumn: NSTableColumn?, row: Int) -> NSView? {
var cell = NSTableCellView(frame: NSMakeRect(0, 0, 100, 40))
var textField = NSTextField(frame: NSMakeRect(0, 0, 50, 20))
// **For transparency**
textField.stringValue = nameList[row]
textField.bezeled = false
textField.editable = false
textField.drawsBackground = false
cell.addSubview(textField)
return cell
}发布于 2015-04-08 01:43:56
这是一个问题,文本字段被呈现活跃,导致它周围的表视图的白色背景也被呈现活跃。这种振动会导致plusL混合模式,因此变得不可见)。
这只会在弹出程序中发生,因为这是一个充满活力的上下文,默认情况下是使用NSAppearanceNameVibrantLight外观设置的。
来自WWDC2014的209号和220号课程讨论了更多关于振动的内容,以及10.10版本的关于NSVisualEffectView /振动的说明。
要解决这个问题,可以将表视图的外观设置为NSAppearanceNameAqua外观。
https://stackoverflow.com/questions/29493333
复制相似问题