失去焦点时调用Swift UI TextField onCommit(macOS)

时间:2020-11-11 07:09:53

标签: swift xcode macos swiftui

我在内容视图中具有以下文本字段:

func doCommit(){
   print("\(self.status.textValue)")
}
var body : some View {
TextField("Your input:", text: self.$status.textValue, onCommit:{
                            self.doCommit()
                        }).lineLimit(1).focusable(true, onFocusChange: { focused in
                            print ("\(focused) changed")
                        })
 ... 
 }

当文本字段成为焦点并键入return时,doCommit被调用,这正是我想要的, 但是,当我单击其他内容,然后单击文本字段并单击其他位置时,再次调用了doCommit,并且未调用可聚焦的onFocusChange。 我不希望在失去焦点时调用func,而仅在返回/进入时调用

1 个答案:

答案 0 :(得分:0)

似乎只有当您使用 Tab 键遍历不同的 UI 元素时才会调用 onFocusChange,而不是在您点击进入和离开 TextField 时调用