2016-10-05 4 views
-1
func textFieldShouldReturn(_ textfield: UITextField) -> Bool{ 
     p1s1TextField.resignFirstResponder() 
     return true 
} 

func textFieldShouldReturn(_ textfield: UITextField)-> Bool{ 
     p2s1TextField.resignFirstResponder() 
     return true 
} 

Donc, c'est le code que j'ai besoin d'écrire, la seule différence étant qu'ils affectent deux champs de texte différents. Je comprends que j'ai besoin de changer l'expéditeur afin d'éviter l'erreur de redéclaration mais je ne sais pas à quoi le changer.Nécessité d'appeler la même fonction deux fois, mais je reçois une erreur 'redeclaration invalide'

+0

Vous devez lire le paramètre de cette méthode ('textField'). Vous pourriez faire ('textField.resignFirstResponder()'). En cas d'utilisation différente ('if (textField == p1s1TextField) {doSomethingSpecifictops1s1} else {}' – Larme

Répondre

4

Il suffit d'utiliser l'un d'eux et le parameter textfield est votre textfield actuel.

Alors:

func textFieldShouldReturn(_ textfield: UITextField) -> Bool { 
     textfield.resignFirstResponder() 
     return true 
} 
1

Essayez ceci pour utiliser la méthode des délégués en fonction de différents champs de texte.

func textFieldShouldReturn(_ textfield: UITextField) -> Bool{ 
    if textfield == p1s1TextField { 
     p1s1TextField.resignFirstResponder() 
    }else if textfield == p2s1TextField { 
     p2s1TextField.resignFirstResponder() 
    } 
     return true 
}