Lion составные анимации для полного экрана - PullRequest
1 голос
/ 10 августа 2011

Я перевожу окно в полноэкранный режим (новый полноэкранный режим Lion).В то время как я делаю переход, я хотел бы также переместить одно из представлений в моем NSWindow на новую позицию.

Итак, в моем NSWindowDelegate я попытался вернуть окно и реализоватьпользовательская анимация:

- (NSArray *)customWindowsToEnterFullScreenForWindow:(NSWindow *)window
{
    return [NSArray arrayWithObject: window];
}


- (void)window:(NSWindow *)_window startCustomAnimationToEnterFullScreenWithDuration:(NSTimeInterval)duration
{
    // book is NSView *ivar
    [[book animator] setFrame: NSMakeRect(/*computed rect*/)];

}

Но это полностью убивает анимацию по умолчанию при переходе в полноэкранный режим, и мое окно внезапно не отображается правильно.

Есть ли способ объединить этив то время как по-прежнему используется анимация по умолчанию?Я довольно новичок в базовой анимации за пределами уровня [view animator] уровня, так что я уверен, что испорчу что-то довольно простое.

1 Ответ

1 голос
/ 27 октября 2011

Вы должны написать что-то вроде этого, чтобы синхронизировать две анимации:

- (void)window:(NSWindow *)_window startCustomAnimationToEnterFullScreenWithDuration:(NSTimeInterval)duration
{
    // book is NSView *ivar
    [[NSAnimationContext currentContext] setDuration:duration];
    [[book animator] setFrame: NSMakeRect(/*computed rect*/)];

}
...