1

次のように、runloopmode NSEventTrackingRunLoopMode でタイマーを追加しました。

NSRunLoop *runLoop = [NSRunLoop currentRunLoop];

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:0.50
                                                  target:self
                                                selector:@selector(targetMethod:)
                                                userInfo:nil
                                                 repeats:YES];


[runLoop addTimer:timer forMode:NSEventTrackingRunLoopMode];

これは、たとえばメニューが開いている間(モーダル)にのみ実行されると思っていましたが、何もしていないときでもずっとトリガーされます。これは正常な動作ですか?

4

1 に答える 1

0

はい、これは正常な動作です。イベントの追跡に使用される runloopMode にタイマーを追加します。この実行ループは常に実行され、処理してイベント ハンドラーに渡す必要があるイベントがあるかどうかを判断するために使用されます。

于 2013-03-07T08:04:30.703 に答える