失去焦点时调用Swift UI文本字段onCommit(macOS)
我在内容视图中有以下文本字段:失去焦点时调用Swift UI文本字段onCommit(macOS),swift,xcode,macos,swiftui,Swift,Xcode,Macos,Swiftui,我在内容视图中有以下文本字段: func doCommit(){ print("\(self.status.textValue)") } var body : some View { TextField("Your input:", text: self.$status.textValue, onCommit:{ self.doCommit() }
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,但仅当return/entry出现时,才会调用它。只有在使用tab键遍历不同的UI元素时,才会调用onFocusChange,当您点击进入和离开
文本字段时,它不会出现onFocusChange
仅当您使用tab键迭代不同的UI元素时才会被调用,而当您点击进入和离开文本字段时,它不会出现。请检查此问题。尝试使用内省(在Gregor Brandt给出的答案中),并使用内省这是一个功能,内置SwiftUI文本字段行为。可以禁用该功能吗@AsperiI收到编译错误:类型为“SetFirstResponderTextField.Content”(又名“_ViewModifier_Content”)的值没有包含Gregor Brandt答案为Xcode 12.1的成员“introspectTextField”,请检查此问题。尝试使用内省(在Gregor Brandt给出的答案中),并使用内省这是一个功能,内置SwiftUI文本字段行为。可以禁用该功能吗@AsperiI收到编译错误:类型为“SetFirstResponderTextField.Content”(又名“_ViewModifier_Content”)的值没有包含Gregor Brandt答案为Xcode 12.1的swift UI的成员“introspectTextField”