Juj*_*uba 2 keyboard textfield ios swift swiftui
用户在TextField使用 SwiftUI之外单击后如何关闭键盘?
我TextField使用 SwiftUI创建了一个,但是如果用户在TextField. 我查看TextField了SwiftUI TextField 文档的所有属性,但找不到与关闭键盘相关的任何内容。
这是我的视图代码:
struct InputView: View {
@State var inputValue : String = ""
var body: some View {
VStack(spacing: 10) {
TextField("$", text: $inputValue)
.keyboardType(.decimalPad)
}
}
}
Run Code Online (Sandbox Code Playgroud)
这可以通过视图修饰符来完成。
public extension View {
func dismissKeyboardOnTap() -> some View {
modifier(DismissKeyboardOnTap())
}
}
public struct DismissKeyboardOnTap: ViewModifier {
public func body(content: Content) -> some View {
#if os(macOS)
return content
#else
return content.gesture(tapGesture)
#endif
}
private var tapGesture: some Gesture {
TapGesture().onEnded(endEditing)
}
private func endEditing() {
UIApplication.shared.connectedScenes
.filter {$0.activationState == .foregroundActive}
.map {$0 as? UIWindowScene}
.compactMap({$0})
.first?.windows
.filter {$0.isKeyWindow}
.first?.endEditing(true)
}
}
Run Code Online (Sandbox Code Playgroud)
backgroundView()
.dismissKeyboardOnTap()
Run Code Online (Sandbox Code Playgroud)
在此处查看演示:https : //github.com/youjinp/SwiftUIKit
| 归档时间: |
|
| 查看次数: |
4398 次 |
| 最近记录: |