4

ビューにジェスチャ レコグナイザーが接続されており、タップが発生したときにどのメソッドが呼び出されるかを単体テストできるようにしたいと考えています。私のジェスチャーレコグナイザーはそのように作成されています...

- (void)setupMyView {
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(myViewTapped)];
    self.myView.userInteractionEnabled = YES;
    [self.myView addGestureRecognizer:tap];
}

タップが発生したときに呼び出されるセレクター (myViewTapped) の名前にアクセスするにはどうすればよいですか?

あなたの知恵を前もってどうもありがとう!

4

2 に答える 2

4

残念ながら、この情報は公開UIGestureRecognizerも公開もされていません。UITapGestureRecognizer

UIControl、たとえば、allTargetsと を公開しallControlEventsます。これは基本的に探しているものですが、残念ながら利用できませんUIGestureRecognizer

その結果、プライベート メソッドを使用しないと、あなたが望むことが可能になるとは思えません。

于 2012-11-05T20:15:03.510 に答える
2

メソッド内でこれを使用しますmyViewTapped

NSLog(@"method name: %@", NSStringFromSelector(_cmd))

これは、メソッド名を出力することもできます。

NSLog(@"%s", __PRETTY_FUNCTION__);

ソース:

于 2012-11-05T20:11:14.540 に答える