Как оживить пользовательское NSWindow - PullRequest
0 голосов
/ 03 августа 2011

У меня проблемы с анимацией собственного окна NSWindow.

Вот мой метод инициализации:

- (CustomWindow *)initWithView:(NSView *)view
{
    if ((self = [super initWithContentRect:contentRect
                                 styleMask:NSBorderlessWindowMask 
                                   backing:NSBackingStoreBuffered 
                                     defer:NO])) {

        [[self contentView] addSubview:view];

        [self setBackgroundColor:[NSColor darkGrayColor]];
        [self setMovableByWindowBackground:YES];
        [self setExcludedFromWindowsMenu:YES];
        [self setOpaque:NO];
        [self setHasShadow:YES];
        [self setDelegate:self];
    }
    return self;
}

Когда я звоню [self setFrame:originalFrame display:NO animate:YES]; есть задержка, которая соответствует продолжительности анимации, но сама анимация не происходит.

Я думаю, это потому, что я использую окно без полей?

Ответы [ 2 ]

1 голос
/ 03 августа 2011

Просто используйте это: [self setFrame:originalFrame display:YES animate:YES];

0 голосов
/ 03 августа 2011

Думаю, размер вашего окна изменен, но представление, которое вы добавляете в представление содержимого, не нужно. Если у вас есть только один вид, то вместо:

[[self contentView] addSubview:view];

использование:

[self setContentView:view];
...