7

我正在开发一个简单的计时器应用程序,并且我创建了一个带有菜单的 NSStatusItem 并且我有一些更新计时器标签的 NSTextField 标签(http://cld.ly/e81dqm)但是当我单击状态项时NSTimer 停止(并停止更新标签).....我该如何解决这个问题?

编辑:这是启动计时器的代码:

timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerDidUpdate:) userInfo:nil repeats:YES];

4

2 回答 2

11

您应该将计时器添加到 MainRunLoop 中,如下所示:

NSRunLoop * rl = [NSRunLoop mainRunLoop];
[rl addTimer:timer forMode:NSRunLoopCommonModes];
于 2011-02-24T11:21:15.727 回答
4

我猜一旦您停止与 NSStatusItem 交互,计时器就会恢复?(在菜单的关闭和鼠标按钮释放后)。

用户交互将主运行循环置于不更新计时器的模式,因此如果您的标签必须不断更新,您可能需要将 NSTimer 和标签绘图移动到单独的进程或另一个线程。

于 2010-02-14T02:14:11.373 回答