将NSTimer链接到NSProgressIndicator

时间:2012-05-20 17:46:13

标签: cocoa nstimer nsprogressindicator

我需要制作一个NSTimer来告诉另一个班级在10秒钟内开火,我还想用它来为确定的NSProgressIndicator制作动画。我还需要知道如何更改我的不确定进度指标以确定。我能够在此找到一份Apple文档,但更深入的解释会有所帮助。

2 个答案:

答案 0 :(得分:3)

从不确定到确定NSProgressIndicator您可以在IB中进行更改。选择您的progressIndicator并转到属性检查器并取消选中 Indeterminate 复选框,如下所示:

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

}

答案 1 :(得分: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];
}