2010-02-16 10 views
45

Ho una tabella molto semplice e quando tocuh una cella apre una nuova vista con un UITextfield. Tutto quello che voglio è che la tastiera si apra automaticamente, senza che l'utente debba toccare UITextfield.Come aprire automaticamente la tastiera su UITextField?

Tutto fatto in Interface Builder, quindi non sono sicuro di come lo faccio. Credo di aver bisogno di mettere a fuoco a un certo punto?

Grazie

risposta

118

a causare la tastiera di presentarsi immediatamente è necessario impostare il campo di testo come il primo risponditore utilizzando la seguente riga:

[textField becomeFirstResponder]; 

si consiglia di inserire questo nel Metodo viewDidAppear:.

+25

vi consiglio -viewDidAppear :, poiché questo genera animazioni. La generazione di animazioni in -viewWillAppear può portare a artefatti grafici, dal momento che non sei ancora sullo schermo. Dal momento che quasi sicuramente lo vuoi ogni volta che entri sullo schermo, -viewDidLoad è probabilmente ridondante (succede ogni volta che la vista viene caricata dal disco, il che è alquanto imprevedibile, quindi non è un buon posto per gli effetti visivi). –

+0

Ottimo consiglio. – jessecurry

+0

È necessario importare il delegato '' 'UITextViewDelegate''' quando si esegue questa operazione e quindi collegarlo al delegato in IB? – Supertecnoboff

3

Swift 3 & 4:

override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(animated) 
    textField.becomeFirstResponder() 
} 
+0

E per evitare effetti collaterali strani, chiamata anche 'super.viewDidAppear (animato)' – Piidro

+0

Certo hai ragione! –