免责声明:此问题是对this问题
的扩展我正在尝试在NSPopover中填充表格。(如图所示)
问题:
我无法为NSTextField创建透明背景。
奇怪的是,如果视图附加到NSWindow
,它可以正常工作(左侧窗口中的名称具有透明背景,但在NSPopover中看到的相同视图无法向NSTextfield显示透明背景。)
这是NSPopover中的错误还是我做错了什么?
这是我创建表格单元格的代码
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
}
答案 0 :(得分:13)
这是文本字段充满活力的问题,导致其周围的表格视图的白色背景也能够充满活力地呈现。这种活力会导致加上混合模式,因此变得不可见。
这只发生在popover中,因为它是一个充满活力的上下文,默认情况下设置为NSAppearanceNameVibrantLight
外观。
来自WWDC2014的会议209和220讨论了关于活力的更多内容,以及关于NSVisualEffectView / vibrancy的10.10发行说明。
要解决此问题,您可以将表格视图的外观设置为NSAppearanceNameAqua
外观。