我正在尝试捕获UINavigationBar上的触摸事件。当用户点击它时,我打算执行一项操作。但是,我似乎无法捕获此组件上的触摸事件。我的代码看起来像这样...

   UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self.navigationController.navigationBar action:nil];
    singleTap.numberOfTapsRequired = 1;
    singleTap.delegate = self;
    [self.navigationController.navigationBar addGestureRecognizer:singleTap];


但是,无论何时点击导航栏,都不会调用我的选择器。我在这里做错什么了吗?我需要做一些特殊的事情来捕获此控件上的触摸事件吗?

最佳答案

尝试:

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doSomething)];
singleTap.numberOfTapsRequired = 1;
//singleTap.delegate = self;
[self.navigationController.navigationBar addGestureRecognizer:singleTap];



-(void) doSomething
{
    NSLog(@"doSomething");
}



目标应该是自我(行动的接受者)
动作应该是用于标识所实现方法的选择器

07-27 18:41