0

カスタム ウィンドウ (matt gemells Transparent Window クラス) があり、ウィンドウのアルファ値を変更してフェードイン/アウト効果を実現し、「makeKeyAndOrderFront:」を実行する必要があります。

ただし、これは機能しません。

私がしたこと:

ヘッダーをインポートしました:

#import "TransparentWindow.h"

次に試しました:

[TransparentWindow setAlphaValue:0.5];

[TransparentWindow makeKeyAndOrderFront:self];

これにより、「透明なウィンドウ」が上記のコードのいずれにも応答しない可能性があるという警告が表示されました。そこで、次を追加して、「setAlphaValue」を透明ウィンドウに実装しようとしました。

- (void)setAlphaValue:(CGFloat)windowAlpha
{
    [super setAlphaValue:windowAlpha];   
}

しかし、2つの警告は消えません。どうすればこれを修正できますか?

4

1 に答える 1

1
[TransparentWindow setAlphaValue:0.5];
[TransparentWindow makeKeyAndOrderFront:self];

これにより、「透明なウィンドウ」が上記のコードのいずれにも応答しない可能性があるという警告が表示されました。

これは、それ (TransparentWindow クラス) がそうでないためです。

これらのメッセージは、TransparentWindow クラスではなく、TransparentWindow インスタンスに送信する必要があります。

そこで、次を追加して、「setAlphaValue」を透明ウィンドウに実装しようとしました。

- (void)setAlphaValue:(CGFloat)windowAlpha
{
    [super setAlphaValue:windowAlpha];   
}

この NSWindow メソッドが存在しない場合、サブクラスのメソッドから呼び出しても問題は解決しません。

于 2010-02-26T15:34:44.130 に答える