[iPhone] TextField キーボードを閉じる (Objective-C)

UITextField は文字を入力するためのUIです。
ユーザーがタッチするとソフトキーボードが自動的に表示されテキストを入力することができますが、キーボードは自動では閉じませんのでコードで閉じさせるか別の設定をする必要があります。
 

Objective-C
Xcode 8.2.1

 

TextField キーボードを閉じる

 
文字を Text Field に入力して、それを Label に表示するアプリを簡単に作ってみます。
 
storyboard に UITextField を配置して
入力した文字を表示する Label を下に置きます。
見やすくするため Inspector area で背景をそれぞれグレーに設定します。
 

 

UITextField のコーディング

 
UITextFieldDelegate を設定して Text Field のデータを受け取ります。
ViewController.h

 
Delegate で受け取ったデータを TextField に渡し、
ラベルの文字として代入して、それが終わったらキーボードを閉じます。

ViewController.m

 
キーボートを閉じる操作は自動ではやってくれない仕様になっています。
ただ、フォーカスを外せばキーボードは自動的に隠れます。
「Return」を押した時に textFieldShouldReturn が呼び出されて
resignFirstResponder を使ってフォーカスを外しキーボードを閉じます。
 
storyboard の UITextField と UILabel をView Controller Scene に接続します。
ビルド実行すると、 TextField の入力文字が Label に反映されたと思います。
 

 

UITextField のキーボードを隠す別の方法

 
別の方法としてstoryboardの設定と簡単なコードで実現するやり方です。
 

 
TextField は Referencing Outlet で textField に接続していますが
Set Events の Did End On Exit で IBAction としても接続します。
 
ViewController.h

 

ViewController.m

 
とてもシンプルになりました。
 
その他には UIViewController を使っている場合であれば
[self.view endEditing:YES];
のようにしてキーボードを閉じることができます。
 
尚、Swift のケースはこちら


ページのトップへ戻る

シェアする

  • このエントリーをはてなブックマークに追加

フォローする