NSWindow с закругленными нижними углами - PullRequest
1 голос
/ 20 апреля 2011

У меня есть подкласс NSWindow, чтобы я мог внести некоторые изменения и создать собственное окно. Один из них - скруглить нижние углы, но пока это не удалось.

Я пробовал это , но у моего окна нет стандартной строки состояния, оно не работало. Я надеюсь, что это возможно;)

Заранее спасибо

Ответы [ 2 ]

5 голосов
/ 21 апреля 2011

Поскольку у моего окна есть стиль: 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];
}
4 голосов
/ 20 апреля 2011

Используйте это в делегате окна:

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

В качестве альтернативы вы можете установить это поведение в Xcode 4 для окна в инспекторе размера на ContentBorder. Это заставит окно выглядеть так:

NSWindow with set content border

...