Кто-нибудь заметил, что uitextfield-pickerview ведет себя по-разному при установке .ipa для существующего рабочего кода.
Я новичок в разработке IOS. У меня есть рабочий код с более чем 20 контроллерами представления. Где я использовал UIPickerView в качестве входного для UITextField, который заполняется при сетевом вызове. Приложение было протестировано с использованием файла .ipa, а также с помощью прямой установки через Xcode в течение нескольких итераций. Все работало нормально.
Недавно Когда я создавал новый файл .IPA, ни одно из представлений средства выбора не работало после установки. Все контроллеры представления показывали клавиатуру, когда я касался текстового поля вместо выбора вида выбора. Принимая во внимание, что та же самая сборка работает нормально, когда я непосредственно устанавливаю / запускаю из XCode для мобильных устройств.
С тех пор, как она распространялась по всему приложению, я заметил, что моя схема архивирования> Конфигурация сборки была каким-то образом установлена в Release. Основываясь на некоторых ответах о переполнении стека, я обновил конфигурацию сборки архива до Debug. После того, как это создало новый файл .ipa, Все Viewcontrollers правильно показывали представления выбора, кроме одного контроллера представления. Я прочитал текстовое поле и снова установил делегат текстового поля. все равно не повезло
Я перепробовал почти все возможности.
Я полностью застрял. Не знаю, почему вдруг рабочий код не работает.
Фрагмент кода:
@ IBOutlet слабый var selectAccountTB: UITextField! ...
func textFieldDidBeginEditing(_ textField: UITextField) {
activeTextField = textField
self.selectedItem = ""
if (activeTextField == selectAccountTB ) {
let toolBar = UIToolbar.init().addToolBarHandler(selectorDone: #selector(pickerDoneTapped), selectorCancel: #selector(pickerCancelTapped))
self.activeTextField.isUserInteractionEnabled = true
self.activeTextField.inputAccessoryView = toolBar
if (self.activeTextField == self.selectAccountTB ) {
self.activeTextField.inputView = self.accountPickerView
}
}
}
extension QTPViewController : UIPickerViewDelegate , UIPickerViewDataSource {
func numberOfComponents(in pickerView: UIPickerView) -> Int { return 1 }
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
var count = 1
if self.activeTextField == self.selectAccountTB {
count = self.accountList.count
} else if self.activeTextField == self.selectPayeeBankTB {
count = self.payeeBankValueList.count
}
return count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
var rowValue:String!
if self.activeTextField == self.selectAccountTB
{
rowValue = self.accountList[row]
} else if self.activeTextField == self.selectPayeeBankTB {
rowValue = self.payeeBankValueList[row]
}
return rowValue
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int){
if self.activeTextField == self.selectAccountTB {
if (!accountList.isEmpty) {
self.selectedItem = self.accountList[row]
print("Selected Item " , self.accountList[row])
}
}
}
}
делегат текстового поля установлен в раскадровке.
Во время отладки замеченный элемент управления не приходит к textFieldDidBeginEditing () при всех неудачных сценариях i = n.
Любое направление для решения проблемы очень ценится.