swiftui: HStack中的textfield,当点击textfield时,HStack的ontaggesture中的代码也会被执行

swiftui: textfield in HStack, when tap the textfield, the code in ontapgesture of HStack is also executed

HStack {
   textfield("", text: $text)
   Text("Something")
}
.onTapGesture {
   code
}

如何在不执行 onTapGesture 中的代码的情况下聚焦文本框? 请帮助我,非常感谢。

我有以下想法,它很简单,也许是临时解决方案。只需在 TextField 上添加 onTapGesture 操作,这样它就会执行该操作,而不会在 HStack 上执行操作。

       HStack {
            TextField("", text: $text).onTapGesture {
                print("Tap On TextField")
            }
           Text("Something")
        }
        .onTapGesture {
           print("Tap On HStack")
        }

如果我们点击 Text("Something"),它将执行 HStack onTapGesture 动作。

更新:-

我们也可以做如下的事情:

    HStack {
        TextField("", text: $text).onTapGesture {
            print("Tap On TextField")
        }
       Group {
            Text("Something")
            // Add Other Item here
       }.onTapGesture {
            print("Tap On Group")
       }
    }
        

这只需在 Hstack 和 Textfield Tap 中创建 2 个组,如果您不想执行任何操作,则只需不要对其执行任何操作。将您的操作放在其他组上。