2013-04-17 18 views
5

Ho una vista con un campo di testo, un'immagine e alcuni pulsanti. Voglio assicurarmi che la tastiera sia visualizzata e sia in cima quando viene visualizzata la vista E Voglio assicurarmi che non vada via dopo aver digitato qualcosa nel campo di testo e inviarlo.Mantieni la tastiera sempre in primo piano e visibile

Ho chiamato [txtField becomeFirstResponder] con viewdidload e la tastiera appare in modo predefinito ma con un ritardo molto breve dopo che la vista è stata visualizzata.

Anche il messaggio di risposta diventa non utile dopo aver inviato il campo di testo.

Grazie in anticipo per il vostro aiuto!

risposta

4

Anche il messaggio di risposta diventa non utile dopo aver inviato il campo di testo.

Questa parte non ha senso. Per impostazione predefinita, un campo di testo non rifiuta la tastiera a meno che non sia con endEditing: o resignFirstResponder. Se la tastiera sta andando via, devi essere facendo andare. Quindi non farlo e non lo farà.

EDIT: E in effetti, il tuo commento più tardi rivela la risposta: hai collegato l'evento di controllo didEndOnExit dal campo di testo. Bene, questo fa sì che la tastiera venga chiusa quando l'utente preme il pulsante Fine! Quindi ti stai effettivamente colpendo in faccia e poi ti lamenti che qualcuno ti sta colpendo in faccia.

Quindi la soluzione, ovviamente, è non collegare l'evento didEndOnExit di controllo (per nulla). Invece, basta dare al campo di testo un delegato e usare i messaggi delegati per scoprire cosa sta facendo l'utente. Nessuno di questi ha alcun comportamento automatico nei confronti della tastiera, quindi la tastiera non verrà automaticamente ignorata. Ad esempio, per sapere quando l'utente sta scrivendo, utilizzare textField:shouldChangeCharactersInRange:replacementString:. Per sapere quando l'utente ha premuto il pulsante Fine, usa textFieldShouldReturn:. E così via.

+0

Vero, il didEndOnExit è collegato a un IBAction che controlla il testo di input dell'utente. Tuttavia, se non lo collego ti ha fatto AndndOnExit, come faccio a sapere quando l'utente ha finito di digitare e ha premuto il pulsante Fine? Fondamentalmente voglio ottenere questo: 1. La tastiera è visibile mentre la finestra viene caricata 2. L'utente compila nel campo di testo, preme il pulsante FATTO o un altro pulsante che metto vicino al campo 3. Il mio codice controlla per vedere se la stringa è corretta e fa qualche azione 4. Nel frattempo l'attenzione è ancora nel campo di testo e la tastiera è ancora visibile – user2292949

+0

Sì, beh, non farlo. Tu stesso stai facendo la cosa di cui ti lamenti. Quindi basta smettere di farlo e il problema andrà via. Vedi la mia risposta modificata. – matt

+0

Grazie, sembra essere la risposta che sto cercando. Aggiornerò il mio codice e la mia voce una volta che avrò completato ciò che intendevo fare. Circa colpendo me stesso in faccia; Probabilmente lo farò da un po 'di tempo, poiché sto solo iniziando lo sviluppo IOS e OOP. – user2292949

Problemi correlati