web-dev-qa-db-ja.com

キーボードが非表示になるiOSイベント

キーボードが表示され、完了ボタンが押された後、キーボードが非表示になるときに制御する必要があります。 iOSでキーボードが非表示になると、どのイベントがトリガーされますか?ありがとうございました

24
Jaume

はい次を使用

//UIKeyboardDidHideNotification when keyboard is fully hidden
//name:UIKeyboardWillHideNotification when keyboard is going to be hidden

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(onKeyboardHide:) name:UIKeyboardWillHideNotification object:nil];

そしてonKeyboardHide

-(void)onKeyboardHide:(NSNotification *)notification
{
     //keyboard will hide
}
58

ユーザーが[完了]ボタンを押すタイミングを知りたい場合は、UITextFieldDelegateプロトコルを採用する必要があります。次に、Viewコントローラーでこのメソッドを実装します。

スウィフト3:

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    // this will hide the keyboard
    textField.resignFirstResponder()
    return true
}

キーボードが表示されているか非表示になっているのかを簡単に知りたい場合は、Notificationを使用します。

スウィフト3:

NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardWillShow(_:)), name: .UIKeyboardWillShow , object: nil)

NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardWillHide(_:)), name: .UIKeyboardWillHide , object: nil)

func keyboardWillShow(_ notification: NSNotification) {
    print("keyboard will show!")

    // To obtain the size of the keyboard:
    let keyboardSize:CGSize = (notification.userInfo![UIKeyboardFrameBeginUserInfoKey] as! NSValue).cgRectValue.size

}

func keyboardWillHide(_ notification: NSNotification) {
    print("Keyboard will hide!")
}
6
Domenico

UIKeyboardWillHideNotificationをリッスンできます。これは、キーボードが閉じられるたびに送信されます。

5
kevboh