Ios快速覆盖UItextField的双击
我想在双击UITextField时编写一个自定义代码,并阻止默认文本编辑和键盘弹出。我试过以下方法,但到目前为止没有任何效果。请帮我解决这个问题Ios快速覆盖UItextField的双击,ios,swift2,uitextfield,uigesturerecognizer,uitapgesturerecognizer,Ios,Swift2,Uitextfield,Uigesturerecognizer,Uitapgesturerecognizer,我想在双击UITextField时编写一个自定义代码,并阻止默认文本编辑和键盘弹出。我试过以下方法,但到目前为止没有任何效果。请帮我解决这个问题 let gestureArray = NamTxtBoxVal.gestureRecognizers var tapGesture = UITapGestureRecognizer() for idxVar in gestureArray! { if let tapVar = idxVar as? UITapGestureRecognizer
let gestureArray = NamTxtBoxVal.gestureRecognizers
var tapGesture = UITapGestureRecognizer()
for idxVar in gestureArray!
{
if let tapVar = idxVar as? UITapGestureRecognizer
{
if tapVar.numberOfTapsRequired == 2
{
tapGesture = tapVar
NamTxtBoxVal.removeGestureRecognizer(tapGesture)
}
}
}
let doubleTap = UITapGestureRecognizer(target: self, action: #selector(namFnc(_:)))
doubleTap.numberOfTapsRequired = 2
doubleTap.delegate = self
tapGesture.requireGestureRecognizerToFail(doubleTap)
NamTxtBoxVal.addGestureRecognizer(doubleTap)
我也试过:
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool
{
return false
}
我知道你做这件事的唯一方法就是
class ViewController: UIViewController {
@IBOutlet weak var myViewBehindMyTextField: UIView!
@IBOutlet weak var myTextField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(ViewController.myTextFieldTapped(_:)))
tapGesture.numberOfTapsRequired = 2
myViewBehindMyTextField.addGestureRecognizer(tapGesture)
}
func myTextFieldTapped(sender: UITapGestureRecognizer) {
print("Double tapped on textField")
}
}
在你的情况下,一次点击编辑文本字段会消失,这是我需要的。哦,不知道你一次点击就需要它。很抱歉在这种情况下,我不知道如何在键盘不出现并迅速消失的情况下执行此操作。一个想法是@SujayUN在UITextField上方放置一个clearColor UIView。然后让UIView只在一次点击时将点击传递到UITextField,并让UIView句柄相应地双击。我还可以用平移手势在屏幕上移动文本字段,因此在移动时很难同时处理这两个字段