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 个组,如果您不想执行任何操作,则只需不要对其执行任何操作。将您的操作放在其他组上。
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 个组,如果您不想执行任何操作,则只需不要对其执行任何操作。将您的操作放在其他组上。