#ios #xcode #swiftui
Вопрос:
Я недавно обновил Xcode с 12.5 (iOS14) до Xcode 13 (iOS15), и мои проекты больше не отображают содержимое TextFields
при редактировании информации в форме. Например, давайте на мгновение представим, что при редактировании информации в a используется следующий код Form
, и вы хотите показать имя Jason
в текстовом поле, как только загрузятся представления, чтобы пользователь знал, что он/она редактирует. В Xcode 12.5 (iOS14) следующий код будет отображаться Jason
сразу после появления формы, в Xcode 13 (iOS15) имя не отображается, пока вы не нажмете на текстовое поле.
Кто-нибудь видел это? Есть ли какое-то решение?
struct TestingTextFields: View {
@State private var inputName:String = ""
var body: some View {
Form{
TextField("Enter Name", text:$inputName)
}
.onAppear(perform: {
self.inputName = "Jason" // name doesn't show until user taps on the textField
})
}
}
Комментарии:
1. Интересно посмотреть на поведение, одним из решений может быть применение
onAppear
модификатора прямо на вашемTextField
2. Вы правы, добавление
onAppear
модификатора непосредственно в поля делает трюк. Спасибо!3. Отлично работает как есть с Xcode 13.0 (13A233)
4. Для вашей информации, ваш код, как показано, не работает для меня на macos 12.beta9, скомпилированный с использованием xcode-beta5 (13A5212g), предназначенный для ios 15 и macCatalyst. Работает для меня только в приложении macos 12.beta9. Протестировано на реальных устройствах iMac и iPhone с ios15. Работает везде, если вы «прикрепляетесь»
onAppear
кTextField
.5. @Asperi — Хм, это странно, я также использую Xcode 13 (13A233) и не работаю ни на симуляторе, ни на устройстве. @ workingdog — спасибо за информацию.