NSWindow setAlpha没有生效

时间:2011-05-20 09:31:34

标签: cocoa macos animation nswindow

我的应用程序有一个窗口,当它变为活动状态时将其从0设置为1,并在停用时将其设置为0,但是如果我的应用程序仅被激活,我发现在停用时alpha未设置为0很短的时间(<1秒)。

因此效果是窗口在消失然后消失之前快速闪烁进入视图。

这几乎就好像在停用时不会将其alpha设置为0,因为窗口在激活时从未完成将其动画为1。

如何强制alpha为0? - 在applicationWillBecomeActive开头将它设置为0不起作用....

以下是代码:

- (void)applicationWillBecomeActive:(NSNotification *)aNotification {
    [NSAnimationContext beginGrouping];
    [[NSAnimationContext currentContext] setDuration:0.10]; 
    [[mainPanel animator] setAlphaValue:1.0f];
    [NSAnimationContext endGrouping];       
}

- (void)applicationWillResignActive:(NSNotification *)aNotification {
    [mainPanel setAlphaValue:0.0];
    [mainPanel orderOut:nil];   
}

0 个答案:

没有答案