Как придать NSWindow эффект встряхивания, говоря НЕТ, как в окне ошибки входа в систему

Я использую приведенный ниже код для встряхивания представления, и он работает правильно, теперь я хочу встряхнуть окно. Я меняю две строки, которые я выделил в коде жирным шрифтом, с кодом 2, но не работает

//-------- code 1
CGFloat DegreesToRadians(CGFloat degrees)
{
    return degrees * M_PI / 180;
}

NSNumber* DegreesToNumber(CGFloat degrees)
{
    return [NSNumber numberWithFloat:
            DegreesToRadians(degrees)];
}
---------------
[self.view setWantsLayer:YES];

CAKeyframeAnimation * animation= [CAKeyframeAnimation animationWithKeyPath:@"transform.rotation.z"];
[animation setDuration:0.04];
[animation setRepeatCount:10];

srand([[NSDate date] timeIntervalSince1970]);
float rand = (float)random();
[animation setBeginTime:CACurrentMediaTime() + rand * .0000000001];

NSMutableArray *values = [NSMutableArray array];
[values addObject:DegreesToNumber(-1)];
[values addObject:DegreesToNumber(1)];
[values addObject:DegreesToNumber(-1)];    
[animation setValues:values];        
[self.view.layer addAnimation:animation forKey:@"rotate"];


//-------- code 2 
[self.window.animator addAnimation:animation forKey:@"rotate"];
[self.window.animator setWantsLayer:YES];
6
задан Anoop Vaidya 1 September 2014 в 10:46
поделиться