0705 - 说说 NSPopover 的一个坑

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

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

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

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

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

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


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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,815评论 25 709
  • 我知道你想我的话,会联系我,可是我内心焦急如焚,我也试着不去联系你,因为太主动的我,太怕容易受伤。在家是个小公举,...
    姜江将阅读 1,313评论 0 0
  • 最近在微博里面看到的文章,第一时间总会想起你,那句“他很爱你”,真的很温暖。 可是我到现在才体会到这句话的含义,没...
    蒙爷阅读 1,709评论 0 0
  • 一个月前,简友给我寄了一本书《穿着高跟鞋奔跑》,是讲女人真实职场故事的书,主人公Carrie从公关菜鸟到职场总监,...
    修行的猫阅读 16,073评论 46 267