gpt4 book ai didi

objective-c - Objective C - OS X - 将 NSShadow 添加到 NSImageView 时出现问题

转载 作者:行者123 更新时间:2023-12-03 17:09:51 24 4
gpt4 key购买 nike

我正在尝试向 MAC 应用程序上的 NSImageView 添加阴影。

我创建了一个自定义 NSImageView 类“ShadowView.h”并修改了drawRect:,如下所示:

- (void)drawRect:(NSRect)dirtyRect {
[super drawRect:dirtyRect];

NSShadow *shadow = [[NSShadow alloc] init];
[shadow setShadowBlurRadius:5];
[shadow setShadowOffset:NSMakeSize(30.0, 3.0)];
[shadow setShadowColor:[NSColor redColor]];
[shadow set];

[self setWantsLayer:YES];
[self setShadow:shadow];
}

但是什么也没发生。另外,当我调试时,我可以看到上面的代码被调用。我5年前就看过这个问题,但现在似乎不再起作用了

Adding a Shadow to a NSImageView

谢谢!

最佳答案

向 View 添加阴影时,该 View 的 super View 需要启用图层支持。如果没有, View 的阴影将在其自身边界处被剪切,如以下示例应用程序所示:

clipped shadow

确保在 View 的 super View 上调用 -setWantsLayer:YES (或选中 Interface Builder 中的“核心动画层”复选框),以确保阴影完全可见:

full shadow

关于objective-c - Objective C - OS X - 将 NSShadow 添加到 NSImageView 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38938460/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com