【发布时间】:2014-04-08 11:53:48
【问题描述】:
我想要一个类似于 QuickTime X 窗口的窗口。带有圆角的全不透明窗口。
我已经通过以下方式实现了自定义无边框NSWindow:
[window setOpaque:NO];
[window setBackgroundColor: [NSColor clearColor]];
还有一个自定义的NSView:
- (void)drawRect:(NSRect)rect
{
NSBezierPath* thePath = [NSBezierPath bezierPath];
[thePath appendBezierPathWithRoundedRect:rect xRadius:radius yRadius:radius];
[thePath fill];
}
它按预期工作,但是当它快速调整大小时,窗口变得明显变慢。
我发现这种减速是由-setOpaque:NO 给出的;如果我删除那条线,窗口可以再次快速调整大小,但角落显然不再圆润。
有没有办法避免使用-setOpaque:NO 并且仍然可以有圆角?也许一个人可以拥有一个除了角落之外都是不透明的窗户?
视图是 NSOpenGLView,因此如果有帮助,我可以利用 OpenGL。
【问题讨论】:
标签: objective-c nsview nswindow rounded-corners private-methods