【发布时间】:2026-02-08 13:05:02
【问题描述】:
我正在通过为窗口设置自定义内容视图来绘制自定义窗口。当我绘制自定义视图时,我会给它圆角和漂亮的轮廓以模仿适当的窗口。
但是,我在窗口周围看到另一个 1 px 的轮廓,它偏离了角落的边缘。我发现如果我关闭阴影它会消失,但显然因为它想像窗户一样我需要阴影。这就是我对 1px 轮廓的意思:
我怎样才能防止这种情况发生?
编辑
绘制自定义窗口内容视图的代码:
NSBezierPath *path = [NSBezierPath bezierPathWithRoundedRect:[self bounds] cornerRadius:5];
NSGradient* aGradient = [[[NSGradient alloc] initWithColorsAndLocations:
[NSColor colorWithDeviceRed:0.5569 green:0.5137 blue:0.4588 alpha:1.0000], 0.0,
[NSColor colorWithDeviceRed:0.5569 green:0.5137 blue:0.4588 alpha:1.0000], 1.0,
nil] autorelease];
[aGradient drawInBezierPath:path angle:90];
[path setLineWidth:4];
[[NSColor colorWithDeviceRed:0.4235 green:0.3922 blue:0.3451 alpha:0.9000] setStroke];
[path strokeInside];
[path setLineWidth:3];
[[NSColor colorWithDeviceRed:0.8431 green:0.8314 blue:0.8078 alpha:1.0000] setStroke];
[path strokeInside];
[path setLineWidth:1];
[[NSColor colorWithDeviceRed:0.4235 green:0.3922 blue:0.3451 alpha:0.9000] setStroke];
[path strokeInside];
【问题讨论】:
标签: objective-c cocoa macos nswindow shadow