2012-05-20 54 views
0

我需要製作NSTimer,它會告訴另一個類在10秒內觸發,並且我還想用它來爲確定的NSProgressIndicator設置動畫。我還需要知道如何將我的不確定進度指標更改爲確定。我能夠找到一個蘋果文檔,但更深入的解釋會有所幫助。將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]; 
}