Swift3でキーボードをタップした際にキーボードを閉じる処理をなんと2パターン書いていこうかと思います。
Contents
キーボードを閉じる処理
キーボードを閉じる処理はアプリ開発をする際、
必須の機能ですよね!
入力が完了した時に閉じる処理や
ボタンをタップした時に閉じる処理などは記述し易いですが、
Viewをタップした時の処理は知らないと書きづらいですよね!
①touchesBeganの中に記述する
まずは簡単な方からいきます。
このように記述しましょう。
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { self.view.endEditing(true) }
なんとたったこれだけ!シンプルですね!
endEditing
これはおそらくresignFirstResponder的な感じで使えるものだと思ってください。
ちなみに、このように書いても動きます。(多分)
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { textField.resignFirstResponder() }
②ViewにaddGestureしてresignFirstResponder
これは先ほどのものよりやや難しいかもです。
import UIKit class ViewController: UIViewController { @IBOutlet weak var textField: UITextField! override func viewDidLoad() { super.viewDidLoad() let myTap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(ViewController.close(_ :)) self.view.addGestureRecognizer(myTap) } func close (_ sender: UITapGestureRecognizer) { textField.resignFirstResponder() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } }
まずはcloseというキーボードを閉じる処理の関数を記述します。
ここで難しいのは引数ですね・・・
そしてここで、tapgestureをインスタンス化しています。
let myTap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(ViewController.close(_ :))
インスタンス化したmyTapをaddGestureの引数に格納することによってViewにアクションをプラスしています。
addGestureの詳しい説明はこちら!
swift3:addGestureRecognizerの使い方
ABOUT ME