首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SwiftUI中SecureField获得焦点/未焦点时执行代码

在SwiftUI中SecureField获得焦点/未焦点时执行代码
EN

Stack Overflow用户
提问于 2019-06-30 21:13:01
回答 2查看 1.8K关注 0票数 10

我在SwiftUI有一个SecureField。当这个字段获得焦点时(当用户点击它时),我想操作一个@State属性来为SecureField应用一个偏移量修饰符。当状态失去焦点时,@ SecureField属性应该再次被重置。我希望这样做是为了在切换键盘时使SecureField可见。

我通过使用TextField的onEditingChanged参数实现了这一点,但是这个参数对于SecureField是不存在的。

如何在SwiftUI中使用SecureField执行此操作?

如果TextField被聚焦,这将应用偏移量:

代码语言:javascript
复制
import SwiftUI

let lightGreyColor = Color(red: 239.0/255.0, green: 243.0/255.0, blue: 244.0/255.0, opacity: 1.0)

struct ContentView : View {
    @State private var textFieldString: String = ""

    @State private var editingMode: Bool = false

    var body: some View {
        VStack {
            SecureField($textFieldString, placeholder: Text("My placeholder"))
            }
            .padding()
            .background(lightGreyColor)
            .cornerRadius(10.0)
            .padding()
            .offset(y: editingMode ? -150 : 0)
    }
}

但是如何在没有onEditingChanged参数的SwiftUI中使用SecureField实现同样的功能呢?

代码语言:javascript
复制
struct ContentView : View {
    @State private var textFieldString: String = ""

    @State private var editingMode: Bool = false

    var body: some View {
        VStack {
            SecureField($textFieldString, placeholder: Text("My placeholder"))
            }
            .padding()
            .background(lightGreyColor)
            .cornerRadius(10.0)
            .padding()
            .offset(y: editingMode ? -150 : 0)
    }
}
EN

回答 2

Stack Overflow用户

发布于 2020-07-03 15:13:07

SwiftUI没有focused/unfocused的方法。您需要使用@state@observablleonTapGesture来实现这一点。但是每次SecureField被录下来的时候onTapGesture都会打电话。

代码语言:javascript
复制
SecureField($textFieldString, placeholder: Text("My placeholder"))
            }
.onTapGesture {
//here apply condition

}
票数 2
EN

Stack Overflow用户

发布于 2019-06-30 21:26:16

您可以像以前一样继续使用UITextField,并切换其secureTextEntry字段,而不是使用SecureField组件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56825107

复制
相关文章

相似问题

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