テキストフィールドにテキスト入力後、Returnでキーボードを隠す方法 [Swift1.2][UITextField]
UITextFieldはXcodeで部品を放り込めば超簡単に追加できますが、このままだとある問題が発生します。
- テキスト入力完了後、Returnキーを押してもキーボードが隠れない
ここ、iOS開発勉強初期で引っかかる人、多いのではないでしょうか。
また、一度「あ〜そうなんか、なるほど」と理解しても暫く触っていないと、忘れてるなんてこともあると思います。(→私です。)
ということで、よく忘れるので備忘録として書いておきます。
1. ViewControllerクラスの頭にUITextFieldDelegate
を追加する。
class ViewController: UIViewController, UITextFieldDelegate { ... }
2. StoryboardのTextFieldをソースファイルに@IBOutletで接続しておく。
Outlet名は任意
class ViewController: UIViewController, UITextFieldDelegate { @IBOutlet weak var inputText: UITextField! ... }
3. viewDidLoad内にinputText.delegate = self
を追加する。
class ViewController: UIViewController, UITextFieldDelegate { @IBOutlet weak var inputText: UITextField! override func viewDidLoad() { super.viewDidLoad() inputText.delegate = self } ... }
4. textFieldShouldReturn
を追加して、内部処理にtextField.resignFirstResponder()
を追加する。
func textFieldShouldReturn(textField: UITextField) -> Bool { textField.resignFirstResponder() return true }
これで、Returnキー入力後にキーボードを隠すことができるようになります。 何が起こっているかという難しい説明は抜きにしてやり方のみ説明しました。
(追記) 恥ずかしながらご指摘により手順3を追記しております...。@toshi586014 さんありがとうございました!