2010-02-16 56 views
45

我有一個非常簡單的表格,當它打開一個單元格時,它將打開一個具有一個UITextfield的新視圖。我只想要的是鍵盤會自動打開,用戶不必觸摸UITextfield。它全部在Interface Builder中完成,所以我不知道我是如何做到這一點的。我想我需要在某個時候設定焦點?如何在UITextField上自動打開鍵盤?

感謝

回答

118

爲了使鍵盤立即顯示出來,你需要使用下面的行設置文本字段作爲第一個響應者:

[textField becomeFirstResponder]; 

您可能希望把這個在viewDidAppear:方法。

+25

我建議-viewDidAppear :,因爲這會產生動畫。在-viewWillAppear中生成動畫可能會導致圖形失真,因爲您還沒有在屏幕上。由於每次出現在屏幕上時幾乎肯定會需要它,因此-viewDidLoad可能是多餘的(每次從磁盤加載視圖時都會發生這種情況,這種情況有點不可預測,因此不適合視覺效果)。 –

+0

非常好的建議。 – jessecurry

+0

您是否需要在執行此操作時導入UITextViewDelegate委託,然後將其連接到IB中的委託? – Supertecnoboff

3

夫特3 & 4:

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

,避免奇怪的副作用,也呼籲'super.viewDidAppear(動畫)' – Piidro

+0

當然,你是對的! –

相關問題