2017-01-08 2 views

Répondre

9

Votre problème est que vous ne l'avez pas déléguer un textField afin d'utiliser cette méthode. Tout d'abord, votre classe doit inclure le protocole UITextFieldDelegate:

class yourClass: UIViewController, UITextFieldDelegate{ ... } 

Et viewDidLoad ajouter ceci aussi bien:

scoreText.delegate = self 

Et vous devez changer ceci:

func textFieldShouldReturn(_ scoreText: UITextField) -> Bool { 
    self.view.endEditing(true) 
    return false 
} 

à ceci:

func textFieldShouldReturn(_ scoreText: UITextField) -> Bool { 
    self.view.endEditing(true) 
    return true 
} 

Code final:

class yourClass: UIViewController, UITextFieldDelegate{ 

@IBOutlet weak var scoreText: UITextField! 

override func viewDidLoad(){ 
    super.viewDidLoad() 
    scoreText.delegate = self 
} 

func textFieldShouldReturn(_ scoreText: UITextField) -> Bool { 
    self.view.endEditing() 
    return true 
} 

Si cela ne fonctionne pas, le problème n'est pas la fonction textFieldShouldReturn. Veuillez vérifier vos connexions de sortie.

+0

C'est tout ce que vous avez à faire pour que cela fonctionne –

+0

Avoir ce problème: http://i.imgur.com /PAWVdrb.png En passant, pourquoi ai-je besoin de déléguer TextField et non une étiquette, un bouton, etc.? – stevetheipad

+0

@stevetheipad 1 - parce que la fonction ** textFieldShouldReturn ** est incluse dans ** UITextFieldDelegate **; 2 - essayez d'ajouter votre argument: ** self.view.endEditing (true) **, j'ai probablement manqué cela dans ma réponse –

0

Essayez cette

func textFieldShouldReturn(_ textField: UITextField) -> Bool { 
    textField.resignFirstResponder() 
    return true 
} 
+0

Pas de chance, même problème. – stevetheipad

+0

@stevetheipad Avez-vous configuré votre contrôleur de vue pour qu'il suive le délégué UITextField? – Mochi

+0

Désolé, voulez-vous dire un IBOutlet? Si oui, j'ai ajouté un de ceux pour l'UITextField. – stevetheipad