每当我尝试使用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吗?
由于
答案 0 :(得分:1)
当您使用没有绘图的常规NSView时,您确定会发生这种情况吗?我打赌不是。其他控件(如NSImageView)具有边框。也许你应该仔细检查以确保它们尽可能关闭。
更新 - 如何让您的视图进入您的窗口?您不包含该代码。我创建了一个基本的测试项目(download it here),图像很好,它运行得很好。亲眼看看。