Что ж, трудно дать вам точный ответ без большого количества вашего кода, но, скорее всего, используется AnyView
. Когда вы используете AnyView
и некоторые @State
изменения, приводящие к его перерисовке, он теряет любое другое состояние, такое как редактирование.
Вы можете исправить это, изменив SearchBar()
на следующее:
func SearchBar() -> some View {
Group {
if (isSearchMode) {
CustomTextField(
text: $value,
isFirstResponder: true,
placeholder: "Testing",
keyboardType: UIKeyboardType.webSearch
)
.frame(width: 300, height: 50)
.padding()
} else {
Image(systemName: "magnifyingglass")
.imageScale(.large)
.gesture(
TapGesture()
.onEnded { _ in
self.isSearchMode = true
}
)
}
}
}