我遇到与此问题完全相同的问题:
Gray border when using NSBorderlessWindowMask
然而,删除窗口阴影的接受答案(如评论中所示)似乎不起作用,至少在Lion上是这样。
我已经将NSWindow
子类化了,并以这种方式创建了一个无边框窗口:
-(id)initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)aStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)flag {
self = [super initWithContentRect:contentRect
styleMask:(NSBorderlessWindowMask | NSResizableWindowMask)
backing:bufferingType
defer:flag];
[self setMovableByWindowBackground:YES];
[self setOpaque:NO];
[self setBackgroundColor:[NSColor clearColor]];
[self setHasShadow:YES];
[self setLevel:NSMainMenuWindowLevel];
return self;
}
请注意,此应用仅适用于Lion(因此NSResizableWindowMask
不会更改外观)。我尝试禁用阴影,并为我的窗口切换多个设置,但我似乎无法删除此灰色边框:
我的代码中没有添加边框。我只是在窗口中的Interface Builder中添加了NSSplitView
。在运行时,我将彩色视图作为子视图添加到拆分视图的左窗格中,完全填充左侧拆分视图的边界。
编辑:即使使用简单的NSView
,也会发生这种情况,甚至不是拆分视图。
TL;DR
:为什么我的NSView
周围有灰色边框?
答案 0 :(得分:2)
NSWindow
子类:
- (BOOL)hasShadow {
return NO;
}
要删除边框,您需要知道此边框来自视图 - 而不是窗口(就像您在编辑中所说的那样)。因此,您必须使用以下代码禁用视图的边框:
[myview setBorderType:NSNoBorder];