0705 - 说说 NSPopover 的一个坑

作者: ITJason | 来源:发表于2017-07-05 23:50 被阅读143次

    今天开发 iTips,遇到一个很诡异的问题:NSOutlineView 中的 NSTableCellView 中的 NSTextField,始终有一个背景色,无论怎么设置都无法去掉。如下图中左侧部分所示:

    关键的,相同的代码在另一个项目中,则没有问题,奇了怪了。

    Google 了快一个小时,最后终于在 GitHub 的一个项目的一个 Issue 的一个评论里,有人说了一点,才 终于知道为什么:NSPopover 默认使用 NSAppearanceNameVibrantLight 这种样式,因此带来问题:NSTextField 使用透明背景色,进而就会取 NSPopover 中的背景色,就是图中的问题。

    解决方案:只要将 NSPopover 的主题改为 NSAppearanceNameAqua 即可:

    self.view.appearance = NSAppearance(named: NSAppearanceNameAqua)

    知道原因后,改是容易的。关键的,很难知道这个原因,这是你翻遍 Apple 技术文档第一页,都找不到答案的问题。好在解决了,不然真的是闹心。


    博客原文:0705 - 说说 NSPopover 的一个坑

    相关文章

      网友评论

      本文标题:0705 - 说说 NSPopover 的一个坑

      本文链接:https://www.haomeiwen.com/subject/vwychxtx.html