Hide keyboard on tap outside in SwiftUI
In this tutorial, we will see how to hide the keyboard on tap outside in SwiftUI.
We can achieve this task by creating an invisible button that will cover the entire screen. This invisible button will act as an overlay, and when we tap anywhere on the screen, the button will trigger an action to dismiss the keyboard.
Example
import SwiftUI
struct ContentView: View {
@State private var text: String = ""
var body: some View {
// ZStack to place views on top of each other
ZStack {
Button(action: {
self.hideKeyboard() //Calls the hideKeyboard function when tapped
}) {
Color.clear //Transparent color to cover the entire screen
}
.edgesIgnoringSafeArea(.all) //Ignores safe area to cover all edges
VStack {
// TextField for user input, bound to the 'text' state variable
TextField("Enter text", text: $text)
.textFieldStyle(RoundedBorderTextFieldStyle())
.padding()
}
}
}
// Function to hide the keyboard
private func hideKeyboard() {
UIApplication.shared.sendAction (
#selector(UIResponder.resignFirstResponder),
to: nil,
from: nil,
for: nil
)
}
}Output:

Leave a Reply