Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
失去焦点时调用Swift UI文本字段onCommit(macOS)_Swift_Xcode_Macos_Swiftui - Fatal编程技术网

失去焦点时调用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”