入力ウインドウを閉じさせるには?

TextFieldとかで入力中に日本語入力などのウインドウが出ているわけだけど、これを「入力窓以外をタップしたら閉じる」ようにするにはどうするか?

それは、 Tap Gesture Recognizer を使う。

配置

ストーリーボードに配置する。GUI部品ではないので、View上にドロップすると下のバーにそれっぽいのが出現する。

設定

他のGUI部品のようにinterfaceに Actionを設定 する。その名前を「viewTap」とする。空の宣言が作成されると思うので、あとは以下のように書く。

@interface testappViewController ()
- (IBAction)viewTap:(id)sender;
:
:
(中略)


// Tap Gesture Recognizer : ウインドウのどこかをタップ
- (IBAction)viewTap:(id)sender {
    // キーボードを引っ込める
    [self.view endEditing:YES];
}