每当我尝试使用 NSBorderlessWindowMask 创建自定义窗口并将 NSView (例如 NSImageView)设置为其 contentView 时,我都会在 NSView 周围出现 1px 灰色边框,并且似乎无法摆脱它。
我遵循了多种方法,包括 Apple 的 RoundTransparentWindow 示例代码以及 StackOverflow 上的一些建议。
我怀疑灰色边框要么来自窗口本身,要么来自 NSView。
你们中有人遇到过这个问题或者有可能的解决方案吗?
代码相当简单。这是自定义窗口的init方法:
- (id)initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)aStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)flag {
self = [super initWithContentRect:contentRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:YES];
if (self != nil) {
[self setAlphaValue:1.0];
[self setBackgroundColor:[NSColor clearColor]];
[self setOpaque:NO];
}
return self;
}
为了测试这一点,在 IB 中,我在该自定义窗口中放置了一个没有边框的 NSImageView,但 NSImageView 中的图像有边框。其他 NSView 子类也是如此,例如 NSTextField、NSTableView。
另外,我还注意到Apple的示例应用程序(RoundTransparentWindow)也发生了同样的情况。是否可以在自定义窗口中绘制没有 1px 边框的 NSView?
Thanks
你确定当你使用没有绘图的常规 NSView 时会发生这种情况吗?我打赌不会。其他控件(如 NSImageView)有边框。也许您应该仔细检查以确保它们已尽可能关闭。
Update- 你如何让你的视野进入你的窗户?您不包含该代码。我创建了一个基本的测试项目(在这里下载 http://media.nozzi.name/sharedexamples/BorderlessTransparentWindowTest.zip)与图像很好,它工作得很好。你自己看。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)