我正在创建没有标题栏的自定义NSWindow
,并且正在使用NSBorderlessWindowMask
使其完全无边界。但是,我的问题是窗户的边缘很锋利。除此之外,没有调整大小的控件。
如何给无边界的圆角窗口?
这是不是与this question重复,因为该问题更多关于删除标题栏及其目前暂无答案。
您可以使窗口完全透明,并可以自己绘制所有内容。我的示例适用于OpenGL视图,但也应适用于Quartz视图或Cocoa视图。
将以下内容添加到您的NSWindow子类的初始化程序中,您可以在其中使用NSBorderlessWindowMask常量创建新窗口。
[self setOpaque:NO];
[self setBackgroundColor:[NSColor clearColor]];
您可能必须自己绘制调整大小控件。我从中获取的示例是一个全屏窗口,因此无需调整大小。
祝你好运。>>
获得具有圆角的窗口的最简单方法是将NSBox
放入窗口,因为这些框具有可自定义的圆角和可自定义的边框。如果随后将窗口设置为非不透明,而将背景色设置为透明(“透明色”),则具有圆角的NSWindow
会绘制普通的窗口阴影(即使在较旧的系统中,否则该窗口也不会有阴影)。大多数可以在Interface Builder中完成。 See here for details。