1

私のViewコントローラーは、これまでのところ正常に動作していますが、1つだけ例外があります。MouseEventがいくつかあり、一部は起動し、その他は動作しません。

- (void)mouseWasHeld: (NSTimer *)tim {
    **// this works not**
}

- (void) mouseMoved:(NSEvent*)someEvent {
    **// this works not**
}

-(void)mouseDown:(NSEvent *)event {
    // this works
}

-(void)mouseDragged:(NSEvent *)event {
    // this works
}

-(void)mouseUp:(NSEvent *)event {
// this works
}

2つのイベントで手がかりが得られない理由がわかりません。

どうもありがとうロナルド

4

2 に答える 2

2
  1. mouseWasHeld:他の場所でのタイマー設定のコールバックのようです。@selector(mouseWasHeld:)コード内で を探して、タイマーがスケジュールされていない理由を見つけてください。
  2. mouseMoved:ウィンドウがを使用してそうするように指示された場合にのみディスパッチされます-[NSWindow setAcceptsMouseMovedEvents:]
于 2012-10-18T09:40:30.763 に答える
1

mouseMoved:トラッキング エリアを追加しない限り、呼び出されません。

 NSTrackingAreaOptions options = NSTrackingMouseEnteredAndExited | NSTrackingActiveAlways;
 NSTrackingArea *trackingArea = [[NSTrackingArea alloc] initWithRect:self.frame options:options owner:self userInfo:nil];
 [self addTrackingArea:trackingArea];
于 2012-10-18T11:32:44.730 に答える