首页 > 代码库 > UITextField禁用掉编辑之后...

UITextField禁用掉编辑之后...

  1. 某些UITextField只为了摆数据,还有响应点击,为了避免频繁出现键盘,所以把UITextField的人机交互(userInteractionEnabled)给关闭了
  2. 此时,给UITextField注册Tap手势,失败
  3. 查资料,没有交互功能的textfield是不能注册手势的,只能注册给其父view,成功
  4. 本例中其父view就是当前窗体,于是发现这个窗体里的按钮都不响应点击事件了(虽然点击的时候能高亮)
  5. 得知可以用手势的代理方法:
    - (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;    }

巨大的坑啊

UITextField禁用掉编辑之后...