2010-12-28 14 views
0

ウィンドウを開いたり閉じたりしてフェードインするにはどうしたらいいですか?ウィンドウのフェードインとアウト

これはおそらくObjective Cで行われるべきです。これは、AppleScript-Objective-Cプロジェクトの一部でなければなりません。私はウィンドウにリンクされたプロパティを使用しており、その上にmakeKeyAndOrderFrontを実行しています...

助けていただければ幸いです!

答えて

7

サブクラスNSWindowの(またはカテゴリを追加)し、追加します。これは、あなたが、プログラム/アウトウィンドウをフェードインすることができます

- (void)fadeInAndMakeKeyAndOrderFront:(BOOL)orderFront { 
    [self setAlphaValue:0.0]; 
    if (orderFront) { 
     [self makeKeyAndOrderFront:nil]; 
    } 
    [[self animator] setAlphaValue:1.0]; 
} 

- (void)fadeOutAndOrderOut:(BOOL)orderOut { 
    if (orderOut) { 
     NSTimeInterval delay = [[NSAnimationContext currentContext] duration] + 0.1; 
     [self performSelector:@selector(orderOut:) withObject:nil afterDelay:delay]; 
    } 
    [[self animator] setAlphaValue:0.0]; 
} 

、そのクローズボタンを押しますときにフェードアウトウィンドウを持っているウィンドウのデリゲートにこれを追加するには:

- (BOOL)windowShouldClose:(id)sender { 
    [window fadeOutAndOrderOut:YES]; 
    return NO; 
} 

代わりにあなたがそう呼びたいもののフェードインコール[window fadeInAndMakeKeyAndOrderFront:YES];を持つウィンドウを表示します。

+0

ありがとうございました!それはうまくいくように見えますが、ビルド時にエラーは発生しませんが、動作しません。 –

+0

フェードインを表示するには、ウィンドウのアルファ値を0.0にする必要があります。今すぐ動作するはずです。 – Regexident

+0

残念ながらまだ動作していません。 –

関連する問題