我正在尝试创建一个小的“菜单栏小部件”。所以它不是一个真正的小部件,而是一个 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 会告诉我正确的时间,如果我再次打开盒子,它会告诉我正确的事情。但它不会再更新,直到我再次关闭盒子。