2

问题

我有一个 .xib 和一个UIButton. 这与文件所有者中 的方法UIButton有连接。Touch Up Inside- (IBAction)play:(id)sender

当我在第一代 iPad 上运行UIButton时,点击时会显示它处于突出显示状态,但不会调用 connected 方法。我在方法的第一行设置了一个断点,它从来没有命中。

当我在第二代 iPad 上运行该应用程序时,一切正常。

我在这个问题上有点盲目,但我希望其他人对可能发生的事情有所了解。知道我忽略了什么吗?

更新,部分解决

感谢 Stavash 的帮助,我看到问题的根源是附加到包含按钮的视图的手势识别器。

当我删除手势识别器时,一切正常。

我看到一个相关的问题,该问题指示使用UIGestureRecognizerDelegate防止手势识别器在点击按钮时响应的解决方案。

但是,即使NO在点击按钮时委托方法正在返回,该Touch Up Inside事件似乎仍然没有被触发。

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
    if ((touch.view == self.playButton)) {
        return NO;
    }
    return YES;
}

代码取自相关问题,上面链接

明天我会再做一些实验,如果我发现哪里出错了再发帖。

4

1 回答 1

1

有可能(看起来很奇怪)您在该视图控制器中有一个活动的 UITapGestureRecognizer,它在每个 iOS 版本中的反应都不同。尝试取消手势识别器的任何活动实例,看看它是否有效。

于 2013-01-31T20:47:30.763 回答