2012-05-20 3 views
0

Мне нужно сделать NSTimer, который сообщит другому классу об активации через 10 секунд, и я также хотел бы использовать его для анимации дефинированного NSProgressIndicator. Мне также нужно знать, как изменить свой неопределенный индикатор прогресса на определенный. Я смог найти документ Apple по этому вопросу, однако более подробное объяснение поможет., связывающий NSTimer с NSProgressIndicator

ответ

3

От неопределенного до определенного NSProgressIndicator Вы можете изменить в IB. Выберите вашу progressIndicator и перейти к атрибутам инспектора и снимите неопределенных флажок, как это:

Screenshot

Или это может быть сделано программно:

[progressIndicatorOutlet setIndeterminate:NO]; 

Примечание: progressIndicatorOutlet Твоя NSProgressIndicator розетка, поэтому не забудьте сделать это IBOutlet.


Наличное NSProgressIndicator анимация:

Это очень просто просто установить и изменить значение, как это:

[progressIndicatorOutlet setDoubleValue:10]; 

Примечание: progressIndicatorOutlet Твоя NSProgressIndicator розетка, поэтому не забывайте до IBOutlet это.


NSTimer:

Простого пример таймера:

//Place this where You want to call class after 10 sec. (for example: when button pressed) 
//It will call class with name callAfter10sec after 10 sec. Place in there what You need to do. 

[NSTimer scheduledTimerWithTimeInterval:10.0 
           target:self 
           selector:@selector(callAfter10sec:) 
           userInfo:nil 
           repeats:YES]; 

Не забудьте добавить класс, который я упоминал в комментариях, как это:

-(void)callAfter10sec:(NSTimer *)time { 
    // Do what You want here 

} 
+0

Благодаря отчислять, это было очень полезно. – Tor

0

Надеется, что это помогает.

Используя следующий способ, которым мы можем добиться того, что, как ожидается,

NSInteger progressValue; 
NSTimer *timerObject; 

progressValue = progressMaxValue; 

timerObject = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(incrementProgressBar) userInfo:nil repeats:YES]; 

[timerObject fire]; 
[self.progressBar setMinValue:progressMinValue]; 
[self.progressBar setMaxValue:progressMaxValue]; 
[self.progressBar setDoubleValue:progressValue]; 

- (void)incrementProgressBar { 
    // Increment the progress bar value by 1 
    [self.progressBar incrementBy:1.0]; 
    progressValue--; 
    [self.progressBar setDoubleValue:progressValue]; 
}