
Ниже приведен пример фрагмента кода, или вы можете попробовать ДЕМО-проект:
Код: Выделить всё
struct ContentView: View {
@State private var text: String = ""
@FocusState private var isTextFieldFocused: Bool
var body: some View {
VStack {
Text("A Text Field Below.")
TextField("Enter text here.", text: $text)
.frame(height: 44)
.textFieldStyle(.roundedBorder)
.focused($isTextFieldFocused)
}
.onAppear {
self.isTextFieldFocused = true
}
.toolbar {
ToolbarItem(placement: .keyboard) {
_keyboardDismissButton()
}
}
}
@ViewBuilder
private func _keyboardDismissButton() -> some View {
Button {
self.isTextFieldFocused = false
} label: {
Image(systemName: "keyboard.chevron.compact.down")
.foregroundColor(.secondary)
.frame(height: 44)
.frame(maxWidth: .infinity)
.contentShape(Rectangle())
}
.buttonStyle(.plain)
}
}
Я знаю, что мы можем реализовать это в UIKit, просто интересно, есть ли какой-нибудь обходной путь для решения этой проблемы в SwiftUI. Или это известная проблема? Я не думаю, что это предполагаемый дизайн...
Окружающая среда:
Xcode 15.0 (15A240d)
iOS 17.0
Подробнее здесь: https://stackoverflow.com/questions/781 ... rd-toolbar