[swift] キーボードの入力が終了したらキーボードを隠す方法(TextField/TextView)

目次

キーボードの入力が終了したらキーボードを隠す方法

キーボードの入力が終了したらキーボードを隠すには以下のコードを実装

TextFieldの場合

// UITextFieldDelegateをViewControllerに実装
class ViewController: UIViewController, UITextFieldDelegate  {

    @IBOutlet var textField :UITextField!
    @IBOutlet var mLabel :UILabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // textFiel の情報を受け取るための delegate を設定
        textField.delegate = self
    }
    
    func textFieldShouldReturn(textField: UITextField) -> Bool{
        
        mLabel.text = textField.text        
        // キーボードを閉じる
        textField.resignFirstResponder()
        
        return true
    }
}

TextViewの場合

TextViewの場合はキーボードのリターンキーを押しても改行するだけなので、別途閉じるボタンをViewのどこかに配置しておく必要がある

// UITextViewDelegateをViewControllerに実装
class ViewController: UIViewController, UITextViewDelegate  {

    @IBOutlet var textView :UITextView!
    @IBOutlet var mLabel :UILabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()        
        // textView の情報を受け取るための delegate を設定
        textView.delegate = self
    }
    
    //閉じるボタンで呼び出されるメソッド
    @IBAction func onClickCloseButton(sender: UIButton) {
        mLabel.text = textView.text
        textView.resignFirstResponder()
    }
}

コメントを残す

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