Domanda

Come posso respingere la tastiera quando l'utente fa clic su un pulsante? Un breve esempio per una migliore comprensione: l'utente modifica un po 'di testo in alcuni campi di testo e alla fine non fa clic su "fatta" o che si smeridi sulla tastiera, ma fa clic su un pulsante "Salva" mentre la tastiera è ancora mostrata . Allora, come posso ora respingere la tastiera?

Grazie. Saluti, Daniel

È stato utile?

Soluzione

nell'azione del pulsante Scrivi,

if([textField isFirstResponder]){
  [textField resignFirstResponder];
}

Se ci sono più campi di testo, ottiene il riferimento di testo corrente ogni volta che la modifica è iniziata e rassegnare le dimissioni nell'azione del pulsante.

Altri suggerimenti

Puoi anche chiamare [view endEditing:YES] Su qualsiasi vista sopra il campo di testo nella gerarchia. Questo è utile se non sei sicuro di quale campo di testo abbia lo stato del primo soccorritore. Opzionale consente inoltre di interrompere un delegato del campo di testo (restituendo no da ABLEDEDICE :) Il che è bello se si utilizza un delegato per eseguire la convalida sui campi.

Se hai più campi di testo e non sai quale è il primo soccorritore (o semplicemente non hai accesso ai campi di testo da dove stai scrivendo questo codice) puoi chiamare il limite: sulla vista genitore contenente i campi di testo .

In Swift, nel relativo controller di visualizzazione, aggiungi questa riga alla funzione del pulsante:

self.view endEditing(true)

Oltre alla risposta di Sripriya, si prega di avere qui la versione Swift 2 Styled:

if numberTextField.isFirstResponder() {
    numberTextField.resignFirstResponder()
}

Divertitevi...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top