NSWindow底角圆润

时间:2011-04-20 07:16:00

标签: objective-c cocoa macos nswindow

我已经将NSWindow子类化了,所以我可以做一些调整并有一个自定义窗口。其中一个是使底角变圆但尚未成功。

我已经尝试了this,但我的窗口没有标准的状态栏,它不起作用。 我希望这是可能的;)

提前致谢

2 个答案:

答案 0 :(得分:5)

因为我的窗口有样式:NSBorderlessWindowMask我通过继承窗口的containerView并覆盖drawRect来解决这个问题:

- (void) drawRect:(NSRect)dirtyRect{
    [[NSColor windowBackgroundColor] set];

    [NSGraphicsContext saveGraphicsState];
    NSBezierPath *path; 
    path = [NSBezierPath bezierPathWithRoundedRect:[self bounds] xRadius:5 yRadius:5];

    ... // do more fancy stuff here ;)

    [NSGraphicsContext restoreGraphicsState];
}

答案 1 :(得分:4)

在窗口的委托中使用它:

- (void)awakeFromNib
{
    [window setContentBorderThickness:32.0 forEdge:NSMinYEdge];
}

或者,您可以在ContentBorder的大小检查器中的窗口上的Xcode 4中设置此行为。这将使窗口看起来像这样:

NSWindow with set content border