objective-c – 淡入/淡出MAAttachedWindow

前端之家收集整理的这篇文章主要介绍了objective-c – 淡入/淡出MAAttachedWindow前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_403_1@我正在使用Matt Gemmell的MAAttachedWindow( http://mattgemmell.com/source)和NSStatusItem在菜单栏中显示自定义视图.我很困惑如何让它淡入淡出.通常我会做这样的事情:
[window makeKeyAndOrderFront:self];
[[window animator] setAlphaValue:1.0];

并淡出:

[[window animator] setAlphaValue:0.0];

但是这个代码似乎对MAAttachedWindow没有影响.有任何想法吗?

谢谢

解决方法

我不是特别精通CoreAnimation和隐式动画的使用.但是,我能够通过向MAAttachedWindow类添加一个显式的alphaValue属性来使MAAttachedWindow淡入淡出:
@interface MAAttachedWindow : NSWindow {
    CGFloat _alphaValue;
...
}
-(CGFloat) alphaValue;
-(void) setAlphaValue:(CGFloat)windowAlpha;
...

@implementation MAAttachedWindow

- (CGFloat) alphaValue {
 return _alphaValue;
}

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

通过添加,我能够获得setAlphaValue的隐式动画:

(下面的代码来自Matt的样本“NSStatusItemTest”代码)

- (void)toggleAttachedWindowAtPoint:(NSPoint)pt
{
...
    [attachedWindow makeKeyAndOrderFront:self];
 [[attachedWindow animator] setAlphaValue:1.0];

我不确定为什么显式定义alphaValue属性有效.我希望可以为隐式动画调用NSWindow的继承版本.但它似乎并不存在.

猜你在找的C&C++相关文章