2010-02-16 9 views
45

Mam bardzo prosty stół, a gdy otworzy się komórka, otwiera nowy widok z jednym UITextfield. Wszystko, czego chcę, to to, że klawiatura otworzy się automatycznie, bez konieczności dotykania pola UIT.Jak automatycznie otworzyć klawiaturę na UITextField?

Wszystko odbywa się w konstruktorze interfejsów, więc nie jestem pewien, jak to zrobię. Chyba muszę w pewnym momencie ustawić ostrość?

Dzięki

Odpowiedz

118

Aby wywołać klawiaturę, aby pokazać się natychmiast trzeba ustawić pole tekstowe jako pierwszy odpowiadającego stosując następujący wiersz:

[textField becomeFirstResponder]; 

może chcesz umieścić to w Metoda viewDidAppear:.

+25

Polecam -viewDidAppear :, ponieważ generuje animacje. Generowanie animacji w -viewWillAppear może prowadzić do artefaktów graficznych, ponieważ nie jesteś jeszcze na ekranie. Ponieważ prawie na pewno chcesz go za każdym razem, gdy pojawi się na ekranie, -viewDidLoad jest prawdopodobnie zbędny (dzieje się tak za każdym razem, gdy widok jest wczytywany z dysku, co jest nieco nieprzewidywalne, więc nie jest dobrym miejscem na efekty wizualne). –

+0

Bardzo dobra rada. – jessecurry

+0

Czy podczas tej czynności należy zaimportować delegata UITextViewDelegate''', a następnie połączyć go z delegatem w IB? – Supertecnoboff

3

Swift 3 & 4:

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

i uniknąć dziwne efekty uboczne, call także 'super.viewDidAppear (animowane)' – Piidro

+0

Pewnie masz rację! –

Powiązane problemy