我正在将窗口转换为全屏模式(新的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]
级以外的核心动画很陌生,所以我确定我搞砸了一些非常简单的东西。
答案 0 :(得分:1)
你必须写这样的东西才能让两个动画同步:
- (void)window:(NSWindow *)_window startCustomAnimationToEnterFullScreenWithDuration:(NSTimeInterval)duration
{
// book is NSView *ivar
[[NSAnimationContext currentContext] setDuration:duration];
[[book animator] setFrame: NSMakeRect(/*computed rect*/)];
}