自定义NSWindow setAlphaValue和makeKeyAndOrderFront

时间:2010-02-25 20:07:24

标签: objective-c cocoa window nswindow

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

然而这不起作用。

我做了什么:

我导入了标题:

#import "TransparentWindow.h"

然后尝试了:

[TransparentWindow setAlphaValue:0.5];

[TransparentWindow makeKeyAndOrderFront:self];

这给了我一个警告,“透明窗口”可能无法响应上面的任何一个代码。所以我尝试通过添加:

将“setAlphaValue”实现到透明窗口中
- (void)setAlphaValue:(CGFloat)windowAlpha
{
    [super setAlphaValue:windowAlpha];   
}

但是2个警告不会消失。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

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

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

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

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

  

所以我尝试通过添加:

将“setAlphaValue”实现到透明窗口中
- (void)setAlphaValue:(CGFloat)windowAlpha
{
    [super setAlphaValue:windowAlpha];   
}

如果这个NSWindow方法不存在,从子类中的方法调用它将无法解决该问题。