2012-07-19 13 views
74

Nella mia vista ho un pulsante e un campo di testo. quando scatto sul campo di testo appare una tastiera e posso scrivere sul campo di testo e ho anche in grado di nascondere la tastiera facendo clic sul pulsante con l'aggiunta di:come aggiungere un'azione sulla chiave di ritorno di UITextField?

[self.inputText resignFirstResponder]; 

Ora voglio consentire tasto Invio della tastiera. quando premo sulla tastiera, la tastiera sparirà e succederà qualcosa. Come posso fare questo?

+1

Eventuali duplicati: http://stackoverflow.com/questions/4761648/close-the-keyboard-on-uitextfield – wquist

risposta

150

Garantire "sé" sottoscrive UITextFieldDelegate e inizializzare inputText con:

self.inputText.delegate = self; 

Aggiungere il seguente metodo di "auto":

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    if (textField == self.inputText) { 
     [textField resignFirstResponder]; 
     return NO; 
    } 
    return YES; 
} 

O a Swift:

func textFieldShouldReturn(textField: UITextField) -> Bool { 
    if textField == inputText { 
     textField.resignFirstResponder() 
     return false 
    } 
    return true 
} 
4

Con lo stile di estensione in swift 3.0

Innanzitutto, impostare delegato per il campo di testo.

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

Poi conformi alle UITextFieldDelegate in estensione del controller della vista

extension YourViewController: UITextFieldDelegate { 
    func textFieldShouldReturn(_ textField: UITextField) -> Bool { 
     if textField == inputText { 
      textField.resignFirstResponder() 
      return false 
     } 
     return true 
    } 
} 
Problemi correlati