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,例如,暴露allTargetsallControlEvents,这基本上是您正在寻找的,但不幸的是它不可用UIGestureRecognizer

结果,我不相信不使用私有方法就可以实现您想要的。

于 2012-11-05T20:15:03.510 回答
2

在方法中使用这个myViewTapped

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

这个也可以打印方法名,

NSLog(@"%s", __PRETTY_FUNCTION__);

来源:

于 2012-11-05T20:11:14.540 回答