使って創ってApp

ソフトウェアを使ったり作ったりするブログです

キーボードを閉じる iOSアプリ開発

テキストフィールドなどを選択した時に、下からにゅっと現れるキーボードを閉じてみましょう。

Udemy の 完全攻略!初心者からプロになるためのiOS 9アプリ開発のすべて という講座で、レクチャー50の内容です。

www.udemy.com

開発環境

完成形

f:id:hitxutokun:20151212224538g:plain

二つの方法でキーボードを閉じることができるようになります。

  • 画面の適当なところをタップしたら閉じる
  • キーボードのリターンをタップ

画面の適当なところをタップ

Xcodeで新規プロジェクトを作成します。テンプレートは Single View Application を選択し、アプリ名をDemo_TextFieldにしました。

  1. Main.storyboard に TextField を配置
  2. ViewController.swift に以下のコードを書きます
    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
      self.view.endEditing(true)
    }
    この touchesBegan メソッドは、ViewController が管理する view がタッチされる時呼ばれます。

キーボードのリターンをタップしたら閉じる

  1. 設置した TextField の Outlet を作成。名前は text にしました
  2. UITextFieldDelegate プロトコルを View Controller に追加
    class ViewController: UIViewController, UITextFieldDelegate {
  3. ViewDidLoad メソッド内で、デリゲートを設定
    override func viewDidLoad() {
      super.viewDidLoad()
      text.delegate = self
    }
  4. リターンキーがタップされた時に呼ばれるメソッドを書く
    func textFieldShouldReturn(textField: UITextField) -> Bool {
      textField.resignFirstResponder()
      return true
    }
    resignFirstResponder メソッドにキーボードを閉じる効用があります。

まとめ

以上2つの方法で、iOSのキーボードを閉じることができます。