“菜单栏小部件”不更新其界面
我正在尝试创建一个小的“菜单栏小部件”。所以它并不是真正的小部件,而是一个 Cocoa 应用程序,它在扩展坞中没有图标,但在菜单或状态栏中有一个图标。
您可以通过单击按钮来触发 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 会告诉我正确的时间,如果我再次打开盒子,它会向我显示正确的时间。但它不会再更新,直到我再次关闭盒子。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我用绝对时间替换了相对时间(例如下午 2:45)...界面仍然没有更新,但没关系。
I replaced the relative time with an absolute time (e.g. 2:45 pm)... Interface is still not updating, but it's ok.