NSView 在 10.12 不显示 shadow 问题详解

在 iOS 上,如果我们要一个 View 显示阴影,那么基本上是这么做的:

不过,到了 macOS 上,这样就不灵了——没有任何效果。

答案在于 macOS 上如果你想要给一个 View 使用 layer ,你必须手动标记,比如说这样:

这下,如果你是 10.13,那么就万事大吉了,然后在 10.12 上发现——依旧没有效果。

这是为什么呢?在苹果的官方指南中,我们可以找到答案,说你不应该直接修改 NSView  的 layer  属性,所以你应该先创建一个  NSShadow() 实例,然后修改它的属性,最后把它赋值给 NSView 。比如下面的代码,才是正确操作:

或者,你也可以简单一点,先给 layer  一个 shadow  实例,然后再去修改它们即可。

 

本文由 落格博客 原创撰写:落格博客 » NSView 在 10.12 不显示 shadow 问题详解

转载请保留出处和原文链接:https://www.logcg.com/archives/2946.html

About the Author

R0uter

如非声明,本人所著文章均为原创手打,转载请注明本页面链接和我的名字。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注