我正在开发一个简单的计时器应用程序,我已经创建了一个带菜单的NSStatusItem,我有一些NSTextField标签可以更新计时器标签(http://cld.ly/e81dqm)但是当我点击状态项时NSTimer停止(并停止更新标签).....我怎样才能解决这个问题?
编辑:这是启动计时器的代码:
timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerDidUpdate:) userInfo:nil repeats:YES];
答案 0 :(得分:11)
您应该将计时器添加到MainRunLoop中,如下所示:
NSRunLoop * rl = [NSRunLoop mainRunLoop];
[rl addTimer:timer forMode:NSRunLoopCommonModes];
答案 1 :(得分:4)
我猜测一旦停止与NSStatusItem交互,计时器就会恢复? (菜单被解除后,鼠标按钮被释放)。
用户交互将主运行循环置于不更新计时器的模式,因此如果您的标签必须不断更新,您可能需要将NSTimer和标签绘图移动到单独的进程或其他进程线程。