Domanda

C'è un modo per fare un resignFirstResponder generale per nascondere la tastiera indipendentemente da ciò che textfield / view / etc chiama?

La ragione è che ho un sacco di campi di testo sul mio punto di vista e non voglio avere a resignFirstResponder per tutti i campi di testo per nascondere la tastiera. Voglio solo un generale

[self resignFirstResponder].

Tutte le idee?

Grazie in anticipo

È stato utile?

Soluzione

Il modo più semplice per farlo è quello di avere un metodo per ogni volta che si desidera nascondere la tastiera che assomiglia a questo:

-(void)dismissKeyboard {
    [firstField becomeFirstResponder];
    [firstField resignFirstResponder];
}

Altri suggerimenti

So che questo è già stato contrassegnato come risposta, ma per quelli che eseguito in questo come ho fatto si può semplicemente utilizzare il seguente metodo per la vista che contiene i campi di testo.

- (BOOL)endEditing:(BOOL)force

Questo metodo esamina la vista corrente e della sua gerarchia visualizzazione secondaria per il campo di testo che è attualmente il primo responder. Se ne trova uno, si chiede che campo di testo a dimettersi da primo responder. Se il parametro force è impostato su YES, il campo di testo non è mai nemmeno chiesto; è costretto a dimettersi. UIView Documentation

[self.view endEditing:YES];

si nasconde la tastiera quando si clicca sulla vista.

È possibile chiudere la tastiera senza alcun riferimento a UITextField / UITextView con l'aiuto del sottostante Codice:

[[[UIApplication sharedApplication] keyWindow] endEditing:YES];

questo ignorare la tastiera globalmente senza il riferimento.

Spero che questo vi aiuterà.

È possibile verificare queste domande:

In sintesi: È possibile chiamare becomeFirstResponder su qualche altra cosa che si sceglie. Potrebbe essere un UIViewController o un UIView. Ho avuto un problema simile prima, avevo bisogno di fare la mia tastiera andare via quando stavo spingendo mio punto di vista di controllo al suo chiamante, senza sapere quale campo di testo è stata la prima responder. Poi, il viewWillAppear del mio controller della vista che stavo tornando indietro, ho chiamato [sé becomeFirstResponder] e la tastiera della vista spinto non c'era più. Perché questo fatto qualsiasi campo di testo è stato sciolto essere il primo risponditore

Nel mio app quando ho avuto più di un campo di testo e vorrei rendere la tastiera andare via indipendentemente da quale dei campi chiamavano, vorrei solo ha scritto un metodo e lasciare che tutti e ciascuno di essi resignFirstResponder.

I supporre che come programmatore, si dovrebbe avere la chiara conoscenza quanti campi di testo sono sul controller della vista e come è possibile accedere, altrimenti si otterrà incasinato e app non starà bene ... :-P

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