У меня есть следующий код с этими раскрывающимися списками и даже автозаполнением внизу. Все они встроены в форму и прекрасно работают, пока в iOS не появится клавиатура. Затем я получаю следующую ошибку:
Ошибка: это приложение или используемая им библиотека передали недопустимое числовое значение (NaN или не-число) в CoreGraphics API, и это значение игнорируется. Пожалуйста, устраните эту проблему.
и это: **-[RTIInputSystemClient RemoteTextInputSessionWithID:performInputOperation:] для выполнения операции ввода требуется действительный идентификатор сеанса **
Я выполнил обратную трассировку, но мне кажется, что она китайская.. Может кто-нибудь сказать мне, что я делаю не так?
struct CreatePersonView: View { @Environment(\.dismiss) частная переменная отклонить @ObservedObject var vm: EditPersonViewModel @State Private var phoneDropDown = false @State Private var emailDropDown = false @State Private var hasError = false @State Private var selectedLocation: MKMapItem? @State внутренняя переменная searchResults: [MKMapItem] = [] @State Private var searchText = "" @State внутренняя переменная debounceTimer: Таймер? var body: some View { ZStack { Форма { Раздел("Общие") { TextField("Имя", текст: $vm.personEntity.firstName) .keyboardType(.asciiCapable) TextField("Фамилия", текст: $vm.personEntity.lastName) .keyboardType(.default) TextField("Заголовок", текст: $vm.personEntity.title) .keyboardType(.default) } Раздел { TextField("Ячейка", текст: $vm.personEntity.mobile) .keyboardType(.phonePad) TextField("Телефон", текст: $vm.personEntity.phone1) .keyboardType(.phonePad) если телефонDropDown == true { TextField("Факс", текст: $vm.personEntity.fax) TextField("Альтернативный телефон", текст: $vm.personEntity.phone2) } } заголовок: { ТелефонСписокЗаголовок } Раздел { TextField("Электронная почта", текст: $vm.personEntity.email1) если emailDropDown == true { TextField("Электронное письмо 2", текст: $vm.personEntity.email2) TextField("Электронное письмо 3", текст: $vm.personEntity.email3) } } заголовок: { Заголовок списка электронной почты } если vm.hasOrg != true { если выбраноМестоположение == ноль { TextField("Добавить местоположение", текст: $searchText) List(searchResults.prefix(2), id: \.self) {элемент в Кнопка { печать (элемент) handleSelection (элемент: элемент) selectedLocation = элемент результаты поиска = [] } этикетка: { AutoCompleteRow(элемент: элемент) } } } еще { если пусть selectedLocation = selectedLocation { AutoCompleteRow (элемент: selectedLocation) } еще { Текст("Ошибка") } } } } } .navigationTitle(vm.isNew ? «Новый контакт» : «Обновить контакт») .alert("Ошибка", isPresented: $hasError, действия: {}) { Text("Пожалуйста, добавьте имя, город и штат") } .toolbar { ToolbarItem(размещение: .confirmationAction){ Кнопка("Готово") { проверить() } } ToolbarItem (размещение: .navigationBarLeading) { Кнопка("Отмена") { увольнять() } } } .onChange(из: searchText) { debounceSearch (запрос: searchText) } } } некоторые частные просмотры удалены
частный var phoneListHeader: some View { HStack{ Текст("Телефон") Разделитель() Кнопка { withAnimation(.easeInOut) { телефонDropDown.toggle() } } этикетка: { Текст («Еще») .font(.caption) Изображение (имя системы: «стрелка.вниз») .rotationEffect(Угол(градусы: phoneDropDown? 180: 0)) } } } частный var emailListHeader: some View { HStack{ Текст("Электронная почта") Разделитель() Кнопка { withAnimation(.easeInOut) { электронная почтаDropDown.toggle() } } этикетка: { Текст («Еще») .font(.caption) Изображение (имя системы: «стрелка.вниз») .rotationEffect(Угол(градусы: emailDropDown? 180: 0)) } } } ** И обратная трассировка **
Отслеживание: 101039558 1010de0e0 2d60000000000000
