Possiedo un'applicazione di dati di base che utilizza un controller di navigazione per eseguire il drill-down su una vista di dettaglio e quindi se si modifica una delle righe di dati nella vista di dettaglio si passa a una visualizzazione di modifica per quella linea singola, come in Esempio di mele CoreDataBooks (eccetto CoreDataBooks utilizza solo un UITextField
da solo, non uno che è una sottoview di UITableViewCell
come il mio)!Sottotitoli UITextField di UITableViewCell per diventare il primo soccorritore?
La vista di modifica è una UITableviewController
che crea la sua tabella con una singola sezione singola riga e una UITextfield
nella cella, in modo programmatico.
Quello che voglio che accada è quando si seleziona una riga da modificare e la vista edit viene inserito nello stack nav e la vista di modifica è animato in movimento attraverso lo schermo, voglio che il campo di testo per essere selezionato come firstResponder in modo che il la tastiera è già visualizzata mentre la vista si sposta sullo schermo per assumere la posizione. Come nell'app Contatti o nell'app CoreDataBooks.
ho attualmente il seguente codice nella mia app che fa sì che la vista da caricare e poi si vede la tastiera appare (che non è quello che voglio, voglio la tastiera per essere già lì)
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[theTextField becomeFirstResponder];
}
Non è possibile inserirlo in -viewWillAppear
poiché il campo di testo non è ancora stato creato, quindi theTextField
è nullo. Nell'app CoreDataBooks dove ottengono ciò che voglio caricano la loro vista da un pennino in modo che usino lo stesso codice ma in -viewWillAppear
come il campo di testo è già stato creato!
C'è comunque un modo per aggirare questo senza creare un pennino, voglio mantenere l'implementazione programmatica per consentire una maggiore flessibilità.
Molte grazie
Ho combattuto con questo per oltre un anno. A volte avrei trovato una soluzione che avrebbe funzionato, ma poi un nuovo aggiornamento per iOS avrebbe rotto. Così fastidioso. Questa è la soluzione migliore che abbia mai visto fino ad oggi, nonostante la sensazione di hacky. –
Grazie per questo grande trucco, ma non capisco perché abbiamo bisogno di "hiddenTextField"? I punti "hiddenTextField" e "theTextField" si riferiscono alla stessa istanza di UITextField? –
quando usi questo "hack", puoi vedere il cursore? Ho provato con uitableviewcell personalizzata con uitextview in essa: la tastiera si apre ma non ci si concentra su uitextview. – Sefran2