Metode ini memungkinkan Anda menyembunyikan keyboard di spacer!
Pertama tambahkan fungsi ini (Kredit Diberikan Kepada: Casper Zandbergen, dari SwiftUI tidak dapat mengetuk di Spacer of HStack )
extension Spacer {
public func onTapGesture(count: Int = 1, perform action: @escaping () -> Void) -> some View {
ZStack {
Color.black.opacity(0.001).onTapGesture(count: count, perform: action)
self
}
}
}
Selanjutnya tambahkan 2 fungsi berikut (Kredit Diberikan Kepada: rraphael, dari pertanyaan ini)
extension UIApplication {
func endEditing() {
sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil)
}
}
Fungsi di bawah ini akan ditambahkan ke kelas View Anda, cukup lihat jawaban teratas di sini dari rraphael untuk lebih jelasnya.
private func endEditing() {
UIApplication.shared.endEditing()
}
Akhirnya, Anda sekarang dapat memanggil ...
Spacer().onTapGesture {
self.endEditing()
}
Ini akan membuat area spacer menutup keyboard sekarang. Tidak perlu lagi tampilan latar belakang putih besar!
Anda dapat secara hipotetis menerapkan teknik ini extension
ke setiap kontrol yang Anda butuhkan untuk mendukung TapGestures yang saat ini tidak melakukannya dan memanggil onTapGesture
fungsi tersebut bersama self.endEditing()
untuk menutup keyboard dalam situasi apa pun yang Anda inginkan.