gpt4 book ai didi

ios - SwiftUI 中的 textFieldDidBeginEditing 和 textFieldDidEndEditing

转载 作者:行者123 更新时间:2023-12-01 22:09:44 24 4
gpt4 key购买 nike

如何将方法 textFieldDidBeginEditingtextFieldDidEndEditing 与苹果默认的 TextField 结构一起使用。

最佳答案

TextField 具有 onEditingChangedonCommit 回调。

例如:

@State var text = ""
@State var text2 = "default"
var body: some View {
VStack {
TextField($text, placeholder: nil, onEditingChanged: { (changed) in
self.text2 = "Editing Changed"
}) {
self.text2 = "Editing Commited"
}
Text(text2)
}
}

onEditingChanged中的代码仅在用户选择textField时调用,而onCommit仅在return、done等时调用。已被点击。

编辑:当用户从一个 TextField 更改为另一个 TextField 时,之前选择的 TextFieldonEditingChanged被调用一次,changed(参数)等于false,并且刚刚选择的TextFieldonEditingChanged也被调用,但参数等于true不会为先前选择的 TextField 调用 onCommit 回调。

编辑 2:添加一个示例,说明您是否希望在用户点击 return 或更改 TextField 时调用函数 commissed(),以及在点击时调用 changed()用户点击 TextField:

@State var text = ""
var body: some View {
VStack {
TextField($text, placeholder: nil, onEditingChanged: { (changed) in
if changed {
self.changed()
} else {
self.committed()
}
}) {
self.committed()
}
}
}

关于ios - SwiftUI 中的 textFieldDidBeginEditing 和 textFieldDidEndEditing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56550881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com