如何在NSWindow获得正方形的低角?

时间:2017-11-08 06:55:47

标签: objective-c macos cocoa nswindow

我有NSWindow(实际上是NSPanel,在IB中设置了“实用工具面板”样式。在IB中它显示为具有方形的下角,这是我想要的。然而,当我运行我的应用程序时,窗口会变成圆角。这是一个问题,因为我在这个窗口中显示的内容一直到contentView的边缘,但是圆角会剪切我的内容。

我发现了相反的问题(当Cocoa由于某种原因决定给你方角时如何获得圆角:When exactly does an NSWindow get rounded corners?),但这并没有说明如何在这里解决我的问题。具体来说,它表示窗口wantsLayer上的contentView标志控制着窗口角落的垂直度/圆度;它说将wantsLayer设置为YES会给你圆角。这可能是真的,但我已经有了圆角,我不想要它们。我窗口上的wantsLayer标记是NO,这是默认值;我检查过了。我希望在contentView中有一个不透明的子视图,它会直接移到窗口的边缘,但是它没有;我的子视图是NSOpenGLView,它会为YES返回isOpaque,并且角落仍会四舍五入并剪切子视图的内容。

更广泛地说,如果有人真正了解Cocoa如何决定何时给出圆角以及何时给出方角,那么这些信息将是有用的。有趣的是,我刚刚在我的机器上的Xcode中注意到,项目窗口的右下角动态地正方形和圆形,这取决于Utilities子窗格是否可见。无论Utilities子窗格做什么来消除Xcode窗口的角落,这就是我想要做的。 : - >

0 个答案:

没有答案