non sto particolarmente esperto in Core Animation e l'utilizzo di animazioni implicite. Tuttavia, sono stato in grado di ottenere il MAAttachedWindow a svanire in con l'aggiunta di una proprietà esplicita alphaValue alla classe 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];
}
...
aggiungendo che, sono stato in grado di ottenere l'animazione implicito per setAlphaValue al lavoro:
(di seguito il codice cribbed dal codice di esempio "NSStatusItemTest" di Matt)
- (void)toggleAttachedWindowAtPoint:(NSPoint)pt
{
...
[attachedWindow makeKeyAndOrderFront:self];
[[attachedWindow animator] setAlphaValue:1.0];
io non sono sicuro perché definire esplicitamente le opere di proprietà alphaValue. Mi aspetto che la versione ereditata da NSWindow venga invocata per l'animazione implicita. Non sembra però.
fonte
2009-10-19 22:29:52
Molte grazie :-) Proveremo – indragie
Funziona perfettamente. Grazie ancora – indragie