灰色边框采用NSBorderlessWindowMask
问题描述:
我有完全相同的问题,在这个问题时:去除窗口的阴影没有按”的灰色边框采用NSBorderlessWindowMask
Gray border when using NSBorderlessWindowMask
然而,公认的答案(如评论)似乎工作,至少在狮子。
我子类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
周围有灰色边框?
答
没问题。去除阴影简单地添加到您的NSWindow
子类:
- (BOOL)hasShadow {
return NO;
}
,并删除您需要知道这条边界从视图来的边界 - 而不是窗口(就像你在你的编辑说) 。所以你必须禁用该代码的视图边框:
[myview setBorderType:NSNoBorder];
辉煌。谢谢!实际上去除阴影不是问题,但我试图看看它是否影响了小边界的事情。干杯! – 2012-06-05 04:10:15
@ sudorm-rf'myview'是什么类? – NSAddict 2014-01-18 21:45:09