LoginSignup
130
120

More than 5 years have passed since last update.

[Swift]キーボード以外をタッチするとキーボードが下がる方法

Posted at

TextFieldを実装した際にキーボードでReturnやGoを押さない限りキーボードが下がらないのが気になり色々調べた結果一応わかったのでメモをします。

オブジェクトの配置

キーボードを出すためにTextFieldを適当に配置します。

スクリーンショット 2014-11-29 22.55.49.png

そして次に、TapGestureRecognizerを配置します。

スクリーンショット 2014-11-29 23.00.48.png

ViewControlloerに配置すると以下の画像のようになります。

スクリーンショット 2014-11-29 23.01.56.png

コードの編集

先ほどのTapGestureRecognizerをaction接続します。
ここではnameはtapScreenとします
self.view.endEditing(true)をtapScreenの中に記述します。

ViewController.swift
import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func tapScreen(sender: UITapGestureRecognizer) {
        self.view.endEditing(true)
    }

}

self.view.endEditing(true)を調べたところ
"UIView の endEditing(YES) が呼び出されることで、First Responder として編集状態になっている UITextField も endEditing:YES となり、UITextField の "Editing Did End" イベントが呼び出され、最終的に、キーボードが非表示になる感じのようです。"
と書いてありました。(http://program.station.ez-net.jp/special/handbook/objective-c/uiview/hide-keyboard.asp)

これはObjective-Cなので記述の仕方が若干変わりますが、内容としてはこんな感じだと思います。

まとめ

これでNumberPadなどReturnがないキーボードでもキーボード外をタップすればキーボードがさがるようになりました。
結構用途がありそうです。
知っている人は知っていると思いますけど、初心者はこういうことをコツコツやっていかないとダメですねw

130
120
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
130
120