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

4

我有一个手势识别器连接到一个视图上,我希望能够单元测试它在点击发生时调用的方法。我的手势识别器创建如下...

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

当发生点击事件时,我如何访问调用选择器(myViewTapped)的名称?

非常感谢您提前的帮助!

2个回答

4

很遗憾,无论是UIGestureRecognizer还是UITapGestureRecognizer都没有公开这些信息。

例如,UIControl公开了allTargetsallControlEvents,基本上就是你要找的,但是很遗憾UIGestureRecognizer不可用。

因此,我认为如果不使用私有方法,您想要的功能是不可能实现的。


2

myViewTapped方法中使用此内容。

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

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

NSLog(@"%s", __PRETTY_FUNCTION__);

Source:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接