cocoa - NSView 图层阴影绘制在 subview 上,而不是 View 本身

标签 cocoa calayer nsview shadow

我试图在 NSViewlayer 上设置阴影,但该图层是在我的 View 的 subview 上绘制的,而不是 View 本身。是什么原因造成的?

相关 View 及其所有 subview 都是分层支持的。除了一个 subview 之外,所有 subview 都是带有图像的按钮 (NSButton) - 另一个 subview 是通过 drawRect: 呈现的自定义 View 。

self.layer.shadowColor = [[NSColor blackColor] colorWithAlphaComponent:0.9].CGColor;
self.layer.shadowRadius = 2;
self.layer.shadowOffset = NSMakeSize(0, -1);
self.layer.shadowOpacity = 0.9;

我还尝试通过 NSShadow 设置阴影,结果相同。

最佳答案

事实证明,如果您在 NSViewlayer 上设置阴影,则仅当 View 具有 drawRect 时,它才会在该 View 上绘制: 绘制不透明内容的实现。否则它会绘制所有 View 的 subview 。

奇怪。

关于cocoa - NSView 图层阴影绘制在 subview 上,而不是 View 本身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37685265/

相关文章:

objective-c - 在 Cocoa 中从 Mac 捕获音频并保存到文件的代码示例?

iOS - 如何创建带阴影的 "material design"兼容 UIView?

cocoa - BeginSheet不显示窗口

ios - 动画 CATextLayer 的 foregroundColor 属性

iphone - CALayer 并获取其 UIView 的当前上下文

objective-c - 为什么 NSView.scrollRectToVisible(rect) 在向上或向左移动时返回 false?

objective-c - 使用 cocoa 绘制 NSImage

objective-c - 具有委托(delegate)的对象的名称是什么?

objective-c - 调用dispatch_sync()时发生死锁,即使它在另一个队列上

objective-c - NSSpeechSynthesizer 中可能存在错误?