2011-08-10 8 views
1

私はウィンドウをフルスクリーンモード(新しいライオンのフルスクリーンモード)に移行しています。私が移行をしている間、私はNSWindowのビューの1つを新しいポジションにスライドしたいと思います。 「フルスクリーンのライオン複合アニメーション

- (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*/)]; 

} 

しかし、これは完全にフルスクリーンモードに行くのデフォルトのアニメーションを殺し、私の窓が突然のdoesn:

だから、私のNSWindowDelegateに、私は窓を返すとカスタムアニメーションを実装しようとしました正しく塗装しないでください。

まだデフォルトのアニメーションを使用しているうちにこれらを合成する方法はありますか?私は[view animator]レベルのものを超えてコアアニメーションにはかなり新しいので、私は非常に単純なものを台無しにしていると確信しています。

+0

私はライオンが実際にウィンドウをアニメーション化していることはよく分かりません。私はそれがちょうど写真を撮るかもしれないと思うし、次にフェードし、新しいウィンドウサイズに拡大してください。アニメーションを注意深く見てください。 – spudwaffle

答えて

1

あなたは同期して2つのアニメーションを持っているために、このような何かを書くことがあります。

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

} 
+0

このアニメーションは、システムが提供するものほど流動的ではありません... –