SwiftUI 在失去焦点时运行函数 TextField
Posted
技术标签:
【中文标题】SwiftUI 在失去焦点时运行函数 TextField【英文标题】:SwiftUI run function on losing focus TextField 【发布时间】:2021-09-03 22:03:15 【问题描述】:每当文本字段失去焦点时,我想运行一些函数。 文本字段已经有 onEditingChange 和 onCommit 但我想在用户离开文本字段后运行验证功能。
与 onblur 为网络所做的相似,不会使屏幕上的任何其他视图混乱。
【问题讨论】:
onEditingChanged
有什么问题?当用户离开文本字段时,我会给你false
【参考方案1】:
在 ios 15 中,@FocusState
和 .focused
可以为您提供此功能。在 iOS 13 和 14 上,您可以使用onEditingChanged
(显示在第二个TextField
)
struct ContentView: View
@State private var text = ""
@State private var text2 = ""
@FocusState private var isFocused: Bool
var body: some View
TextField("Text goes here", text: $text)
.focused($isFocused)
.onChange(of: isFocused) newValue in
if !newValue
print("Lost focus")
TextField("Other text", text: $text2, onEditingChanged: newValue in
print("Other text:",newValue)
)
【讨论】:
对于 13 或以下的 IO 是否有类似的东西? 更新了我的答案——onEditingChanged
适用于 iOS 13 和 14以上是关于SwiftUI 在失去焦点时运行函数 TextField的主要内容,如果未能解决你的问题,请参考以下文章