UITapGestureRecognizer en un campo de texto no como se esperaba

En mi clase tengo 11 UITapGestureRecognizers en una matriz textViewRecognizer adjunta a 11 de 100 UITextFields en una matriz boxArray. Cuando se toca un campo de texto que contiene un UIGestureRecognizer, se ejecuta tappedTextView donde trato de obtener el índice del primer respondedor.

in embargo, debido a un orden extraño en la forma en que se ejecutan las cosas, la función de acción solo me da el primer respondedor del primer respondedor anterior al que se acaba de tocar.

¡Además, tengo que tocar dos veces para seleccionar incluso el campo de texto que estaba buscando! Necesito usar la función tap y no los delegados de texto, así que esto ha sido un verdadero dolor de cabeza.

Yo tengo..

    @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
            }
        }
    }
}

in my viewDidLoad tengo

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

En mi clase tengo

Quiero establecer 11 de 100 campos de texto para que este sea un reconocedor de tomas dependiendo de algunas condiciones (solo voy a usar un bucle for regular aquí)

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

¿De todos modos, puedo conseguir que me dé el primer respondedor real, después de hacer el toque?

¿Hay alguna forma de dar dos vueltas para seleccionar el campo de texto que tiene una UITapGesture?

Cualquier ayuda es muy apreciada

Edited: funciones con nombre apropiado

Respuestas a la pregunta(2)

Su respuesta a la pregunta