1

UITextFieldのダブルタップでカスタムコードを書いて、キーボードのデフォルトのテキスト編集とポップアップをブロックします。私は以下を試してきましたが、これまでのところ私のために何も働いていません。親切にも私はこの問題を解決するのを助けます。Ios Swift UItextFieldのダブルタップを無効にする

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool 
{ 

    return false 
} 

答えて

1

あなたがこれを行うための、私が知っている唯一の方法は

  1. に設定するUITextField
  2. 後ろのUIViewを入れている:私も試した

    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) 
    

    textFieldのuserInteractionEnabled = false

  3. UIViewにダブルタップジェスチャを追加

これにより、キーボードをポップアップしたり編集モードに入ることなく、TextField領域にダブルタップを登録することができます。

ダブルタップ後にtextFieldを使って何をしようとしているのかよく分かりませんが、この時点でほとんどのものをプログラムで処理できるはずです。このため

コードは次のとおりです。ウル場合

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") 
    } 
} 
+0

、シングルタップで編集TextFieldには私が必要とされ、離れて行くウィル。 –

+0

ああ、あなたがシングルタップでそれが必要だったのか分からなかった。ごめんなさい。その場合、キーボードが上がったり消えたりせずにこれを実行する方法がわかりません。 –

+0

@SujayUNはUITextFieldの上にclearColor UIViewを置くことを考えています。それから、UIViewは、単一のタップである場合にのみUITextFieldにタップを渡し、それに応じてUIViewにダブルタップを処理させます。 –

関連する問題