2011-08-03 15 views
0

カスタムNSWindowをアニメーション化する際にいくつか問題があります。カスタム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];そこにアニメーションの再生時間に対応して遅延があるが、アニメーション自体は発生しません。

は、ここに私のinitメソッドです。

私はボーダーレスウィンドウを使用しているためだと思いますか?

+0

これに任意の進捗状況を?私は同じ問題を抱えています。 – mxcl

+0

私の問題は、バックグラウンドスレッドで(誤って)アニメーションを作成していたことでした。 – mxcl

答えて

1

は単純にこれを使用する:[self setFrame:originalFrame display:YES animate:YES];

+0

それは役に立たなかった。この時点で、私はそれが私のコードを妨害する何かだと思っています。ちょうど確かめるためにサンプルプロジェクトをビルドします。 –

+0

これはどうですか? '[[self animator] setFrame:originalFrame display:YES];' – VenoMKO

+0

これは何かをしています。私は今あなたの答えを受け入れ、すべてがOKであることを確認するつもりです。 –

0

ウィンドウのサイズは変更されていますが、コンテンツビューに追加することを確認してください。そうではありません。あなたが1つのビューのみを持っている場合は、代わりに:

[[self contentView] addSubview:view]; 

使用:

[self setContentView:view]; 
+0

こんにちはAndriyさん、お返事ありがとうございます。残念ながら、それはうまくいきませんでした。 –

+0

あなたの呼び出しを変更しようとしました: '[self setFrame:originalFrame display:YES animate:YES];'? – Andriy