我有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窗口的角落,这就是我想要做的。 : - >