今日はSwiftUIの勉強していきます。
TextFieldやTextEditorのようなキーボードが表示される場合に、キーボードが表示されたままで閉じれないことがありました。
とりあえず背景部分をタップしたらキーボード閉じるという方法がわかったので共有します。
キーボードを閉じる処理
extensionを作る
SwiftUIデフォルト機能でないのでUIKitの力を使います。とりあえずおまじないという感じで以下をextesionで実装します
import Foundation import UIKit extension UIApplication { func closeKeyboard() { sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil) } }
extensionを使う
- ZStackで背景領域を作る
- .onTapGestureモディファイアで
- UIApplication.shared.closeKeyboard()
var body: some View { ZStack { // 背景 ZStack { Color.white.edgesIgnoringSafeArea(.all) } .onTapGesture { UIApplication.shared.closeKeyboard() }
おわりに
最後まで見ていただきヘペトナス!
読者登録・Twitterのフォローもお願いします。