【问题标题】:Transparent background of NSTextfield NSPopover [duplicate]NSTextfield NSPopover的透明背景[重复]
【发布时间】:2015-04-07 13:55:16
【问题描述】:

免责声明:这个问题是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
}

【问题讨论】:

    标签: macos cocoa nstableview nspopover


    【解决方案1】:

    这是文本字段呈现鲜明的问题,导致其周围的表格视图的白色背景也呈现鲜明。这种活力会导致 plusL 混合模式,因此变得不可见)。

    这只发生在弹出窗口中,因为这是一个充满活力的上下文,并且默认设置为 NSAppearanceNameVibrantLight 外观。

    WWDC2014 的第 209 和 220 节讨论了更多关于活力的内容,以及关于 NSVisualEffectView / vibrancy 的 10.10 发行说明。


    要解决此问题,您可以将表格视图的外观设置为NSAppearanceNameAqua 外观。

    【讨论】:

    • 遗憾的是,对于刚接触该平台的人来说,这是最不明显的事情之一。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-15
    • 2012-05-12
    • 1970-01-01
    • 2018-06-22
    • 2016-11-04
    • 2013-11-30
    • 1970-01-01
    相关资源
    最近更新 更多