Ios快速覆盖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

我想在双击UITextField时编写一个自定义代码,并阻止默认文本编辑和键盘弹出。我试过以下方法,但到目前为止没有任何效果。请帮我解决这个问题

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
}

我知道你做这件事的唯一方法就是

  • 在UITextField后面放置UIView
  • 将文本字段的userInteractionEnabled设置为false
  • 将双击手势添加到UIView
  • 这将允许您在文本字段区域注册双击,而不会弹出任何键盘或进入编辑模式

    不确定双击文本字段后打算做什么,但此时您应该能够以编程方式处理大多数内容

    代码为:

    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句柄相应地双击。我还可以用平移手势在屏幕上移动文本字段,因此在移动时很难同时处理这两个字段