我有一个自定义窗口(matt gemells透明窗口类),我需要更改窗口的alpha值以实现淡入/淡出效果并执行“ makeKeyAndOrderFront:”。

但是,这不起作用。

我做了什么:

我导入了标头:

#import "TransparentWindow.h"


然后尝试:

[TransparentWindow setAlphaValue:0.5];

[TransparentWindow makeKeyAndOrderFront:self];


这给了我一个警告,“透明窗口”可能不响应以上任何一个代码。因此,我尝试通过添加以下内容来在透明窗口中实现“ setAlphaValue”:

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


但2条警告不会消失。我怎样才能解决这个问题?

最佳答案

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

  
  这给了我一个警告,“透明窗口”可能不响应以上任何一个代码。


那是因为它(TransparentWindow类)没有。

您需要将这些消息发送到TransparentWindow实例,而不是发送到TransparentWindow类。


  因此,我尝试通过添加以下内容来在透明窗口中实现“ setAlphaValue”:

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



如果此NSWindow方法不存在,则从子类中的方法调用它不会解决该问题。

07-27 13:34