- 某些UITextField只为了摆数据,还有响应点击,为了避免频繁出现键盘,所以把UITextField的人机交互(userInteractionEnabled)给关闭了
- 此时,给UITextField注册Tap手势,失败
- 查资料,没有交互功能的textfield是不能注册手势的,只能注册给其父view,成功
- 本例中其父view就是当前窗体,于是发现这个窗体里的按钮都不响应点击事件了(虽然点击的时候能高亮)
- 得知可以用手势的代理方法:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
return ([[touch.view class] isSubclassOfClass:[UIButton class]]) ? NO : YES;
}
这个方法不靠谱,我点击的是UIToolbar里的UIBarButtonItem
,打印出来的却是UIToolbarTextButton
,这个类我没找到,结果只能用字符串匹配了。
if ([[NSString stringWithFormat:@”%@”,[touch.view class]] isEqualToString:@”UIToolbarTextButton”]) {
return NO;
}
巨大的坑啊
时间: 2024-10-30 10:17:38