gpt4 book ai didi

objective-c - setWantsLayer 改变 NSWindow 的行为

转载 作者:搜寻专家 更新时间:2023-10-30 19:48:58 24 4
gpt4 key购买 nike

我在使用 NSWindow 时遇到了问题,它是内容 View - 具体来说是标题栏和圆底角的外观。我正在观察 10.11 和 10.10 上的问题,一切看起来都很好。但说到点子上。

窗口的标题栏如下所示:

correct titlte bar

同时底部看起来像这样:

enter image description here

没有圆角。窗口以编程方式启动,它包含两个以编程方式添加的 subview ,使用 self.contentView addSubview: 方法。

经过一些工作发现,添加

[self.contentView setWantsLayer:YES]; 

在窗口初始化开始时,标题栏看起来像这样:

enter image description here

平坦且纯色比正常颜色深 - 不好。另一方面,底部看起来像我需要的那样:

enter image description here

我不允许显示更多的窗口。这是我的实验初始化:

[self.contentView setWantsLayer:YES];

self.identifier = someid;
self.styleMask = NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask;
self.backingType = NSBackingStoreBuffered;
[self setFrame:NSMakeRect(0, 0, windowInitWidth, windowInitHeight) display:NO];
[self setBackgroundColor:[NSColor colorForKeyPath:@"blackcolor"]];
NSButton *windowButton = [self standardWindowButton:NSWindowCloseButton];
[windowButton setEnabled:NO];
[self centerOnMainWindowScreen];

[self setupLeftPanel];
[self setupRightPanel];
[self setupConstraints];

任何帮助,这将解释为什么会发生这种情况(绘制窗口元素的顺序是什么?)以及如何正确初始化窗口,不胜感激。再一次:它在 10.10 上双向运行良好。 10.11 导致绘图损坏。

最佳答案

毕竟,你们是对的。我无法创建最小的完整且可验证的示例,但我决定将窗口的背景色更改为透明色。我不知道为什么它最初设置为灰色(当我得到任务时它是灰色的)但是将其更改为透明并不影响以后放置的任何组件。

所以这对我来说是一个解决方案,但我仍然想知道,为什么当窗口的 contentView 是图层支持时标题栏会受到影响。

关于objective-c - setWantsLayer 改变 NSWindow 的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37170879/

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