Кнопка «Готово» на панели инструментов исчезает после представления и закрытия оповещения в SwiftUI ⇐ IOS
Кнопка «Готово» на панели инструментов исчезает после представления и закрытия оповещения в SwiftUI
Проблема в том, что я добавил кнопку «Готово» на панели инструментов, но когда я показываю предупреждение в том же представлении, а затем перефокусируюсь на текстовое поле, кнопка «Готово» на панели инструментов автоматически исчезает в SwiftUI. В TitleWithTextfield есть текстовое поле и метка. Я реализовал проверки; например, если текстовое поле пусто и пользователь нажимает кнопку «Отправить», отображается предупреждение, предлагающее пользователю ввести свое имя или адрес электронной почты. Однако после того, как пользователь нажмет кнопку «ОК», а затем снова коснется текстового поля, кнопка «Готово» на панели инструментов автоматически исчезнет.
Вот код:
var body: some View { НавигацияВью { ZStack { AppColors.primaryColor .ignoresSafeArea(.all) ВСтек { NavigationViewWithTitleInCenter(title: «Обратная связь», backButtonAction: { // Вызовите здесь свою функцию PresentationMode.wrappedValue.dismiss() print("Нажата кнопка "Назад!") }) Разделитель() ВСтек { TitleWithTextfield (заполнитель: «Введите имя», текст: $name) TitleWithTextfield (заполнитель: «Введите адрес электронной почты», текст: $email) TitleWithTextfield (заполнитель: «Введите тему», текст: $subject) TitleWithTextView (заполнитель: «Введите сообщение», текст: $description) PrimaryButton(title: «Отправить»).onTapGesture { self.didTapSubmit() } } .toolbar { ToolbarItemGroup(размещение: .keyboard) { Разделитель() Кнопка("Готово") { UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: ноль, от: ноль, для: ноль) } .foregroundColor(.blue) } } Разделитель() } .blur(radius: isLoading ? 1 : 0) // Применяем размытие, когда isLoading имеет значение true .loadingOverlay(isLoading: isLoading) } .alert(isPresented: $showAlert) { Alert(title: Text("Message"), message: Text("\(alertMessage)"), ignoreButton: .default(Text("OK"))) } } }
Проблема в том, что я добавил кнопку «Готово» на панели инструментов, но когда я показываю предупреждение в том же представлении, а затем перефокусируюсь на текстовое поле, кнопка «Готово» на панели инструментов автоматически исчезает в SwiftUI. В TitleWithTextfield есть текстовое поле и метка. Я реализовал проверки; например, если текстовое поле пусто и пользователь нажимает кнопку «Отправить», отображается предупреждение, предлагающее пользователю ввести свое имя или адрес электронной почты. Однако после того, как пользователь нажмет кнопку «ОК», а затем снова коснется текстового поля, кнопка «Готово» на панели инструментов автоматически исчезнет.
Вот код:
var body: some View { НавигацияВью { ZStack { AppColors.primaryColor .ignoresSafeArea(.all) ВСтек { NavigationViewWithTitleInCenter(title: «Обратная связь», backButtonAction: { // Вызовите здесь свою функцию PresentationMode.wrappedValue.dismiss() print("Нажата кнопка "Назад!") }) Разделитель() ВСтек { TitleWithTextfield (заполнитель: «Введите имя», текст: $name) TitleWithTextfield (заполнитель: «Введите адрес электронной почты», текст: $email) TitleWithTextfield (заполнитель: «Введите тему», текст: $subject) TitleWithTextView (заполнитель: «Введите сообщение», текст: $description) PrimaryButton(title: «Отправить»).onTapGesture { self.didTapSubmit() } } .toolbar { ToolbarItemGroup(размещение: .keyboard) { Разделитель() Кнопка("Готово") { UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: ноль, от: ноль, для: ноль) } .foregroundColor(.blue) } } Разделитель() } .blur(radius: isLoading ? 1 : 0) // Применяем размытие, когда isLoading имеет значение true .loadingOverlay(isLoading: isLoading) } .alert(isPresented: $showAlert) { Alert(title: Text("Message"), message: Text("\(alertMessage)"), ignoreButton: .default(Text("OK"))) } } }
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как обработать действие кнопки IQKeyboardManager «Готово» на панели инструментов?
Anonymous » » в форуме IOS - 0 Ответы
- 7 Просмотры
-
Последнее сообщение Anonymous
-