如何访问附加到UIGestureRecognizer的选择器的名称?

时间:2012-11-05 19:58:19

标签: iphone ios ipad unit-testing

我有一个手势识别器附加到一个视图,我希望能够单独测试它在敲击时调用的方法。我的手势识别器就是这样创建的......

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

如何访问点按时调用的选择器名称(myViewTapped)?

非常感谢您的智慧!

2 个答案:

答案 0 :(得分:4)

不幸的是,UIGestureRecognizerUITapGestureRecognizer都没有公开此信息。

例如,

UIControl会公开allTargetsallControlEvents,这基本上就是您要找的内容,但遗憾的是UIGestureRecognizer

因此,如果不使用私有方法,我不相信你想要的东西。

答案 1 :(得分:2)

在方法myViewTapped

中使用此功能
NSLog(@"method name: %@", NSStringFromSelector(_cmd))

这个也可以打印方法名称,

NSLog(@"%s", __PRETTY_FUNCTION__);

Source: