C'è un modo per nascondere la tastiera quando si preme un pulsante di cancellazione di UITextField
?Nascondere la tastiera quando si preme il pulsante di cancellazione in UITextField
risposta
Sì, c'è, anche se ho il sospetto che fare ciò violerebbe le linee guida di Apple Human Interface.
Per fare ciò, aggiungere il seguente metodo al file di implementazione del controller di visualizzazione. Quindi imposta il controller di visualizzazione nel delegato del tuo campo di testo.
- (BOOL) textFieldShouldClear:(UITextField *)textField{
[textField resignFirstResponder];
return YES;
}
L'aspetto negativo di questo approccio è se vi capitasse di voler evitare che il campo di testo da cancellare, il codice diventa disordinato. Invece si potrebbe provare a definire un metodo personalizzato e quindi collegarlo al metodo valueDidChange
e verificare un valore vuoto.
-(IBAction)hideKeyboardFromTextField:(id)sender{
//TODO: Check if the previous value was longer than one character to differentiate
//between backspace and clear.
//check if the editing caused the box to be empty
if([[sender value] isEqualToString:@""] || [sender value] == nil)
[sender resignFirstResponder];
}
}
Il problema qui è che non si può distinguere facilmente tra un tap sul pulsante chiaro e un tap sul pulsante Elimina quando c'è un carattere nel UITextField.
Come ho detto all'inizio della mia risposta, questo non è consigliabile in primo luogo e come le risposte qui riportate, non è così facile da implementare. Non penso che ne valga la pena, considerando la difficoltà di e il fatto che non si traduca in un'esperienza utente ottimale.
Sì. Chiamare resignFirstResponder
sul campo di testo nel metodo textFieldShouldClear:
del delegato.
In UITextFieldDelegate
- (BOOL)textFieldShouldClear:(UITextField *)textField { [textField resignFirstResponder]; return YES; }
Ma c'è un problema con questo. Dal manuale "Il campo di testo chiama questo metodo in risposta all'utente che preme il pulsante di cancellazione incorporato. (Questo pulsante non è mostrato di default ma può essere abilitato cambiando il valore nella proprietà clearButtonMode del campo di testo.) Questo metodo viene anche chiamato quando inizia la modifica e la proprietà clearsOnBeginEditing del campo di testo è impostata su YES. "
Si noti che questo metodo viene chiamato quando la modifica inizia se clearsOnBeginEditing è impostato su YES. Quindi, se chiami resignFirstResponder in questo metodo, la modifica non inizierà in realtà. Quindi è necessario impostare clearsOnBeginEditing su NO. Ovviamente, il campo di testo non verrà cancellato quando inizia la modifica.
Un altro IMPORTANTE non è direttamente correlato alla domanda. Nascondere la tastiera dopo aver toccato il pulsante Cancella non è un comportamento familiare e ad Apple NON piace modificare il comportamento degli articoli standard. Potresti ricevere un rifiuto per questo.
provare questo codice:
[TextField performSelector:@selector(resignFirstResponder) withObject:nil afterDelay:0.1];
Questo codice è sicuramente lavorando per me per nascondere la tastiera mentre sgombrare il contenuto del campo di testo
- (BOOL)textFieldShouldClear:(UITextField *)textField
{
textField.text = @"";
return NO;
}
- 1. Il pulsante di cancellazione di UITextfield nasconde la tastiera quando è all'interno di UIScrollView
- 2. iPhone: è possibile nascondere la tastiera mentre si tocca UITextField?
- 3. Come posso spostare il pulsante di cancellazione in un UITextField?
- 4. Nascondere UITabBar quando si preme un UIView
- 5. Come evitare di nascondere e mostrare la tastiera quando il focus cambia da UITextField e UIWebView?
- 6. Quando si fa clic sulla tastiera del tasto chiaro di uitextfield non scompare il testo
- 7. Come si uccide un'attività quando si preme il pulsante Indietro?
- 8. Annulla AsyncTask quando l'utente preme il pulsante
- 9. etichetta nascosta quando si preme un pulsante
- 10. Nasconde la tastiera quando si preme la freccia verso il basso
- 11. Nascondere il pulsante cerca/vai sulla tastiera quando si utilizza la ricerca Visualizza?
- 12. Personalizzato UITextField tasto di cancellazione
- 13. Scegliere il pulsante mentre si preme il pulsante di invio
- 14. Cancella messa a fuoco EditText quando si preme il pulsante Indietro quando viene visualizzato il softkey
- 15. Impedisci la visualizzazione della tastiera predefinita quando viene premuto UITextField
- 16. Swift, come riprodurre il suono quando si preme un pulsante
- 17. Chiudi l'app quando si preme il pulsante Indietro su Android
- 18. latenza quando si preme il pulsante dell'auricolare nell'iPhone
- 19. salva lo stato quando si preme il pulsante Indietro
- 20. che rileva la modifica del contenuto di UITextField quando la modifica non viene effettuata dalla tastiera
- 21. Avere più comandi quando si preme il pulsante
- 22. Come nascondere la tastiera virtuale quando si cambiano le schede?
- 23. Come perdere la messa a fuoco di un edittext quando si preme il pulsante "done" nella tastiera virtuale?
- 24. Come nascondere la tastiera quando si avvia l'attività
- 25. Come modificare l'immagine del pulsante di cancellazione (pulsante x) o almeno il colore dell'immagine del pulsante di cancellazione in UISearchbar?
- 26. Tenere la softkey aperta quando si preme il tasto di invio
- 27. Nascondere la tastiera di input software quando la finestra di dialogo si chiude
- 28. Previene la perdita di variabili quando si preme il pulsante di ricarica del browser
- 29. non può attivare l'evento keypress quando si preme il tasto di cancellazione
- 30. UITextField tastiera non appare
+1 per la risposta dettagliata. grazie a tutti voi. –