前提・実現したいこと
searchBarで入力し、キーボードにある検索ボタンを押下後
入力エラーのときは、UIAlertControllerで「検索する対象がありません」などというアラートを出しています。
アラートを出しているときはキーボードは閉じるのですが、
アラートのキャンセルボタン(キャンセルボタンと再入力ボタンがあります)を押下したとき、キーボードが閉じたまま元の画面を表示したいです。
発生している問題・エラーメッセージ
キャンセルボタンを押すと、すぐにキーボードが現れ
その後、actionに書いてあるキーボードを閉じる処理が走ります。
この一瞬キーボードが現れるのをなくすにはどうしたらいいでしょうか。
ちなみに、searchBarは他のクラスで宣言しています。
該当のソースコード
swift
1 2 3 4func keyBoardErrorDialog(_ message: String){ 5 DispatchQueue.mainSyncSafe { 6 self.dialog = UIAlertController(title: "エラー", message: message, preferredStyle: .alert) 7 self.dialog.parentView = self 8 let okButton: UIAlertAction = UIAlertAction(title: "再入力", style: .default) 9 let cancelButton: UIAlertAction = UIAlertAction(title: "キャンセル", style: .default){ action in 10 // キーボードたたむ 11 self.view.endEditing(true) 12 } 13 14 self.dialog.addAction(cancelButton) 15 self.dialog.addAction(okButton) 16 present(self.dialog, animated: true, completion: nil) 17 } 18} 19 20
試したこと
・handlerの中に書いてみた → 無意味
・アラートが呼ばれた瞬間キーボードたたむ処理を走らせる → 再入力の時にキーボードを開かせることができない(調べたがわからなかった)
回答1件
あなたの回答
tips
プレビュー