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 に答える