UITapGestureRecognizer em um campo de texto não conforme o esperado

Na minha classe, tenho 11 UITapGestureRecognizers em um array textViewRecognizer anexado a 11 dos 100 UITextFields em um array boxArray. Quando um campo de texto é tocado contendo um UIGestureRecognizer, ele executa tappedTextView, onde tento obter o índice do primeiro respondedor.

No entanto, devido a algumas ordens estranhas na maneira como as coisas são executadas, a função de ação fornece apenas o primeiro respondedor do primeiro respondente anterior ao que acabou de ser tocado.

Além disso, eu tenho que tocar duas vezes para selecionar o campo de texto que eu estava procurando! Eu preciso usar a função de toque e não os delegados de texto, então essa foi uma verdadeira dor de cabeça.

Eu tenho...

    @objc func tappedTextField(_ sender: UITapGestureRecognizer) {
    for i in 0...99 {
        if (boxArray[i]?.isFirstResponder)! {
            if let index = boxArray.index(of: boxArray[i]) {
            print(index)
            break
            }
        }
    }
}

no meu viewDidLoad eu tenho

for i in 0...10 {
        textFieldTapRecognizer[i].addTarget(self, action: #selector(self.tappedTextField(_:)))
}

Na minha classe eu tenho

Eu quero definir 11 dos 100 textFields para que este seja um reconhecedor de toque, dependendo de algumas condições (eu vou usar um loop for regular aqui)

for i in 0...10 {
         boxArray[i]?.addGestureRecognizer(textFieldTapRecognizer[i])
}

Existe alguma maneira de obter o primeiro atendedor real depois que a torneira foi feita?

Existe alguma maneira de dar o toque duplo para selecionar o campo de texto que possui um UITapGesture?

Qualquer ajuda é muito apreciada.

Editado: funções nomeadas corretamente

questionAnswers(2)

yourAnswerToTheQuestion