0

我正在尝试创建一个小的“菜单栏小部件”。所以它不是一个真正的小部件,而是一个 Cocoa-Application,它在 Dock 中没有图标,但在菜单或状态栏中有一个图标。

您可以通过单击按钮来触发 NSTimer,然后它应该会显示倒计时。但它不...

- (void)update {
    NSTimeInterval interval = [endDate timeIntervalSinceNow];

    int _seconds = (int)interval%60;
    int _minutes = (((int)interval-_seconds)/60)%60;
    int _hours = ((int)interval-_seconds-_minutes*60)%3600;

    timeLeft.stringValue = [NSString stringWithFormat:@"%i:%i:%i",_hours,_minutes,_seconds];

    NSLog(@"%i:%i:%i",_hours,_minutes,_seconds);
}

那么究竟发生了什么?

当我触发计时器时,界面不会更新 timeLeft 标签。NSLog() 也不起作用。但是如果我关闭盒子,NSLog 会告诉我正确的时间,如果我再次打开盒子,它会告诉我正确的事情。但它不会再更新,直到我再次关闭盒子。

4

1 回答 1

0

我用绝对时间(例如下午2:45)替换了相对时间...界面仍然没有更新,但没关系。

于 2011-08-06T14:11:07.487 回答