Я не особенно хорошо разбираюсь в 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:
(код ниже взят из примера Мэтта "NSStatusItemTest")
- (void)toggleAttachedWindowAtPoint:(NSPoint)pt
{
...
[attachedWindow makeKeyAndOrderFront:self];
[[attachedWindow animator] setAlphaValue:1.0];
Я не уверен, почему явное определение свойства alphaValue работает. Я ожидаю, что унаследованная версия от NSWindow будет вызываться для неявной анимации. Хотя это не похоже на