gpt4 book ai didi

objective-c - 使用 NSBorderlessWindowMask 时 View 周围的灰色边框

转载 作者:行者123 更新时间:2023-12-03 16:38:23 25 4
gpt4 key购买 nike

我遇到了与此问题完全相同的问题:

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 上运行(因此 NSRessizedWindowMask 不会更改外观)。我尝试禁用阴影,并切换窗口的许多设置,但我似乎无法删除这个灰色边框:

enter image description here

我的代码中没有任何地方添加边框。我只是在窗口的 Interface Builder 中添加了一个 NSSplitView 。在运行时,我将彩色 View 作为 subview 添加到分割 View 的左 Pane 中,完全填充左分割 View 的边界。

编辑:即使使用简单的 NSView,甚至使用分割 View ,也会发生这种情况。

<小时/>

TL;DR:为什么我的 NSView 周围有灰色边框?

最佳答案

好的,明白了。要删除阴影,只需将其添加到您的 NSWindow 子类中:

- (BOOL)hasShadow {
return NO;
}

要删除边框,您需要知道该边框来自 View - 而不是窗口(就像您在编辑中所说的那样)。因此,您必须使用以下代码禁用 View 的边框:

[myview setBorderType:NSNoBorder];

关于objective-c - 使用 NSBorderlessWindowMask 时 View 周围的灰色边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9124349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com