1

我正在使用按钮来激活计时器。在该按钮的代码中,它打开了计时器。我将附上代码,尽管我怀疑它是否会脱离上下文有意义。

- (IBAction)btnStartWasClicked:(NSButton *)sender {
if ([btnStartTitle.title isEqualToString:@"Start"])
{
    NSLog(@"Debug: Start button was clicked."); //Debug

    //Changes the Start button to say Stop
    [btnStartTitle setTitle:@"Stop"];

    started = TRUE;
    [self tick:nil];
    NSLog(@"Debug: Timer has started."); //Debug

    [btnReset setEnabled:FALSE];
    [btnLap setEnabled:TRUE];

    if (lapTimerIsPaused == TRUE)
    {
        lapTimerIsRunning = TRUE;
        [self tickAfterLap:nil];
    }

}
else
{
    NSLog(@"Debug: Stop button was clicked."); //Debug

    //Changes the Stop button to say Start
    [btnStartTitle setTitle:@"Start"];

    started = FALSE;
    NSLog(@"Timer has been stopped."); //Debug

    [btnReset setEnabled:TRUE];

    lapTimerIsRunning = FALSE;
    lapTimerIsPaused = TRUE;

    [btnLap setEnabled:NO];
}

我目前有一个讨厌的错误,我不太确定如何摆脱。如果用户非常快速地双击开始按钮,它会:
A) 什么都不做,只是将开始按钮更改为停止。
B)使计时器计数快两倍(如果双击真的很快。)这仅在开始按钮设置为说停止而不是开始时发生。

我的错误是 B。我不太确定如何解决它。

编辑:单圈计时器与常规计时器不同,我认为我遇到的错误不会影响它,所以忽略单圈计时器代码。

有任何想法吗?

4

0 回答 0