我有一个UITextField禁用用户交互.所以如果你点击这个文本字段,没有任何反应.通常检查文本字段是否被点击Id尝试委托方法,但是我不能因为禁用用户交互.有没有办法检查文本字段是否被点击/触摸?我将另一个元素改为hidden = no;当它被轻拍时,我想知道它是否可以启用用户交互.
解决方法
也许,您可以在超级视图中添加UItapGestureRecognizer,检测触摸是否在框架内,并执行某些操作
Objective-C的
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didRecognizeTapGesture:)]; [self.textField.superview addGestureRecognizer:tapGesture];
接着:
- (void)didRecognizeTapGesture:(UITapGestureRecognizer*)gesture { CGPoint point = [gesture locationInView:gesture.view]; if (gesture.state == UIGestureRecognizerStateEnded) { if (CGRectContainsPoint(self.textField.frame,point)) { [self doSomething]; } } }
迅速
let tapGesture = UITapGestureRecognizer(target: self,action: #selector(didRecognizeTapGesture(_:))) textField.addGestureRecognizer(tapGesture)
然后
private dynamic func didRecognizeTapGesture(_ gesture: UITapGestureRecognizer) { let point = gesture.location(in: gesture.view) guard gesture.state == .ended,textField.frame.contains(point) else { return } //doSomething() }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。