首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SwiftUI TextField可在任何点击时重置焦点

SwiftUI TextField可在任何点击时重置焦点
EN

Stack Overflow用户
提问于 2021-10-22 07:26:41
回答 1查看 119关注 0票数 0

我想这样做:单击除当前"Textfield“和键盘之外的任何元素-失去焦点的逻辑被调用。

代码语言:javascript
复制
struct ContentView: View {
    @State private var text: String = ""
    
    var body: some View {
        VStack {
            Text("Hello, world!")
            TextField(
                "Title TextField",
                text: self.$text,
                onEditingChanged: {
                    print("onEditingChanged: \($0)")
                },
                onCommit: {
                    print("onCommit")
                }
            )
            .onSubmit {
                print("onSubmit")
            }
            Button("Print") {
                print("text: \(self.text)")
            }
        }
    }
}

我想做一个通用的解决方案,而不需要手动隐藏键盘。

我之所以需要这个,是因为TextField在iOS 14和iOS 15中具有不同的逻辑。

iOS 14:键盘关闭后,值发生变化。

iOS 15:从键盘输入时,值会发生变化。

EN

回答 1

Stack Overflow用户

发布于 2021-10-22 22:58:14

我使用这个扩展:

代码语言:javascript
复制
extension UIApplication {
    func endEditing() {
        sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil)
    }
}

然后在我的身体里

代码语言:javascript
复制
        .onTapGesture {
            UIApplication.shared.endEditing()
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69672890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档