如何在用户使用SwiftUI在TextField
外部单击后关闭键盘?
我使用SwiftUI创建了一个TextField
,但是我找不到任何解决方案,如果用户在TextField
之外单击,则可以取消键盘。我看了一下TextField
和SwiftUI TextField documentation的所有属性,我找不到任何与关闭键盘相关的东西。
这是我的视图代码:
struct InputView: View {
@State var inputValue : String = ""
var body: some View {
VStack(spacing: 10) {
TextField("$", text: $inputValue)
.keyboardType(.decimalPad)
}
}
}
6条答案
按热度按时间1l5u6lss1#
这可以通过视图修改器来完成。
代码
用法
在这里查看演示:https://github.com/youjinp/SwiftUIKit
aydmsdu92#
这是使用DragGesture的解决方案,它正在工作。
8gsdolmq3#
将点击手势添加到最外部视图中,并在点击手势闭包中调用扩展方法。
9njqaruj4#
9nvpjoqh5#
在SwiftUI 3中,
@FocusState
Package 器可用于从可编辑字段中移除或切换焦点。当焦点从字段中移除时,键盘关闭。所以在你的例子中,这只是一个给TextView
周围空间空间和手势的问题。但是我们可以用
@FocusState
做更有趣的事情。在表单中从一个字段切换到另一个字段怎么样?如果你点击离开,键盘也解散。hsvhsicv6#
我想这可能是最简单的方法