1

UITextField에서 두 번 탭하여 사용자 정의 코드를 작성하고 키보드의 기본 텍스트 편집 및 팝업을 차단하고 싶습니다. 나는 다음을 시도했지만 지금까지 아무 것도 나를 위해 일하지 못했다. 친절하게도이 문제를 해결하는 데 도움이됩니다.Ios Swift 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 
    } 
    
  • 답변

    1

    나는이 작업을 수행 할 수 알고있는 유일한 방법은

    1. 에이 UITextField에 뒤에있는 UIView를 넣어 textField의 userInteractionEnabled = false
    2. UIView에 더블 탭 동작 추가

    이렇게하면 키보드를 팝업하거나 편집 모드로 전환하지 않고 텍스트 필드 영역에 더블 탭을 등록 할 수 있습니다.

    double tap 후 textField로 무엇을 할 계획인지 확실하지 않지만이 시점에서 대부분의 내용을 프로그래밍 방식으로 처리 할 수 ​​있어야합니다. 이것에 대한

    코드는 다음과 같습니다 하나의 탭에서 편집

    UR의 경우
    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

    , 텍스트 필드는 내가 필요로하는 사라 줘야 해. –

    +0

    오, 단 한 번의 탭으로 필요하다는 것을 몰랐습니다. 죄송합니다. 이 경우, 키보드가 올라가고 사라지는 일없이이 작업을 수행하는 방법을 잘 모릅니다. –

    +0

    @SujayUN은 UITextField 위에 clearColor UIView를 배치하는 것이 좋습니다. 그런 다음 UIView는 단일 탭일 때 UITextField로만 탭을 전달하고 그에 따라 UIView는 이중 탭을 처리합니다. –

    관련 문제