[iOS]テキストフィールドを使った後、リターンキーでキーボードを閉じる

UITextFieldにテキストを入力するさいにキーボードが現れる。
テキストを入力し終えて、リターンキーを押しても、
キーボードは、そのままでは閉じない。

リターンキーでキーボードを閉じるには

テキストフィールドの状態変化を知るのには、UITextFieldDelegateを用いる。
UITextFieldDelegate Protocol Reference

リターンキーが押されたときによばれるのは、-(BOOL)textFieldShouldReturn:(UITextField*)textField

そして、テキストフィールドに対して、resignFirstResponderメッセージを送ることによって、テキストフィールドからフォーカスが外れる。iPhoneでは、これでキーボードが閉じる。

ViewController.h

// 略

@interface ViewController : UIViewController<UITextFieldDelegate>

// 略

ViewController.m

// 略

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
    
    // textFieldを設定
    UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(10, 20, 100, 30)];
    // textFieldの枠線を設定
    textField.borderStyle = UITextBorderStyleLine;
    // textFieldのdelegateをViewControllerに設定
    textField.delegate = self;
    // textFieldをviewに追加
    [self.view addSubview:textField];
}

// リターンキーが押されたら、キーボードを閉じる
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];
    return YES;
}

// 略

参考リファレンス
UITextField Class Reference
UITextFieldDelegate Protocol Reference

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください