ios - 当您点击另一个 TextField 时,如何获取要更新的 TextField 的绑定(bind)值?

标签 ios swiftui textfield

如果我使用以下内容创建 SwiftUI TextField:

init<S, T>(_ title: S, value: Binding<T>, formatter: Formatter)

它仅在按下 Return 时更新绑定(bind)值。如果我在按下 return 之前选择了不同的字段,第一个字段仍会显示其新值,但绑定(bind)的变量不会更新。

下面的初始化看起来像 onEditingChanged可能会帮助我,
init<S, T>(_ title: S, value: Binding<T>, formatter: Formatter, onEditingChanged: @escaping (Bool) -> Void = { _ in }, onCommit: @escaping () -> Void = {})

但是 documentation此时实际上是空的。这个较早的question看起来很相似,但没有公布答案,可能早于上面的第二个 init。

如果未更新绑定(bind)值,则在 OnCommit操作 如何获取 TextField 中显示的字符串以对其进行格式化/将其转换为数字?

最佳答案

尝试这样的事情:

struct ContentView: View {

@State var test1 = "test1"
@State var test2 = "test2"

var body: some View {
    VStack {
        TextField(test1, text: Binding(get: {
            self.test1
        }, set: { newVal in
            self.test1 = newVal
            self.test2 = newVal
        }))
        TextField(test2, text: $test2)
    }
}

关于ios - 当您点击另一个 TextField 时,如何获取要更新的 TextField 的绑定(bind)值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61122136/

相关文章:

ios - 在不连接 APNS 的情况下向 Apple 设备发送推送通知

ios - XCode 8.1 更改了 Storyboard View 中的常量

iphone - 2 View 之间的自定义翻转,如何模仿iOS翻转?

ios - 将 UIView.transform 设置为任意平移 CGAffineTransform 不会执行任何操作

swift - 为什么在 SwiftUI 中应用自定义 ButtonStyle 后我的箭头快捷键不起作用?

mvvm - SwiftUI 中的 EnvironmentObject 与 Singleton?

c++ - 从 WinApi 中的可编辑文本字段读取数据

swift - 如何在 SwiftUI 中相对于不同坐标系中的其他 View 定位 View

regex - Flutter TextField inputFormatters 无法使用我的自定义正则表达式

reactjs - 显示 FluentUI TextField 组件的多个验证