iOS – ソフトウェアキーボードを非表示にする(基本編)

概要
テキストフィールドをタップしたときに、下からにゅると表示されるソフトウェアキーボード。このソフトウェアキーボードのreturnキーや改行キーを押したときに非表示にする方法を紹介します。

ポイント
iOSのソフトウェアキーボードは入力中のテキストフィールドやテキストエリアに対して、resignFirstResponderメソッドを実行することで非表示にすることができます。

方法
UITextFieldDelegateプロトコルに対応していることを.hファイルに記述します。

@interface HunaViewController : UIViewController <UITextFieldDelegate>

 

次に、テキストフィールドのアウトレットをtitleTextFieldとして作成します。そしてこの画面のViewControllerのviewDidLoadメソッドにおいて以下のようにtileTextFieldアウトレットのデリゲート先をそのViewControllerに指定します。また、デリゲートメソッドであるtextFieldShouldReturnメソッドを実装し、その中でresignFirstResponderを実行します。

- (void)viewDidLoad
{
    [super viewDidLoad];

    // デリゲート先を設定
    [self.titleTextField setDelegate:self];
}

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    // ソフトウェアキーボードを閉じる
    [textField resignFirstResponder];

    return YES;
}

textFieldShouldReturnメソッドはソフトウェアキーボードのreturnキーや改行キーが押されたときに呼び出されます。

まとめ

  1. テキストフィールドのデリゲート先を指定する
  2. 指定したデリゲート先にtextFieldShouldReturnメソッドを記述し、その中でresignFirstResponderメソッドを呼び出す

環境
iOS5 & iOS6
XCode 4.5.2

関連項目
iOS – ソフトウェアキーボードを非表示にする(応用編) - テキストフィールド以外の場所がタップされたときにソフトウェアキーボードを非表示にする方法を解説

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です