TextFieldを実装した際にキーボードでReturnやGoを押さない限りキーボードが下がらないのが気になり色々調べた結果一応わかったのでメモをします。
オブジェクトの配置
キーボードを出すためにTextFieldを適当に配置します。
そして次に、TapGestureRecognizerを配置します。
ViewControlloerに配置すると以下の画像のようになります。
コードの編集
先ほどのTapGestureRecognizerをaction接続します。
ここではnameはtapScreenとします
self.view.endEditing(true)をtapScreenの中に記述します。
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