Цей метод дозволяє приховати клавіатуру на розпірних проставках!
Спочатку додайте цю функцію (Кредит надано : Каспер Зандберген, з SwiftUI не може натиснути в Spacer 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
}
}
}
Далі додайте наступні 2 функції (Кредит, наданий: rraphael, з цього питання)
extension UIApplication {
func endEditing() {
sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil)
}
}
Функція нижче буде додана до вашого класу Перегляду, просто зверніться до верхньої відповіді тут від rraphael для отримання більш докладної інформації.
private func endEditing() {
UIApplication.shared.endEditing()
}
Нарешті, тепер ви можете просто зателефонувати ...
Spacer().onTapGesture {
self.endEditing()
}
Це змусить будь-яку область розпірки закрити клавіатуру зараз. Більше не потрібно переглядати великий білий фон!
Ви можете гіпотетично застосувати цю техніку extension
до будь-яких елементів керування, які вам потрібні для підтримки TapGestures, які в даний час цього не роблять, і викликати onTapGesture
функцію в поєднанні із self.endEditing()
закриттям клавіатури в будь-якій ситуації, яку ви хочете.