#ios #swift #uicollectionview #uitextfield
Вопрос:
У меня есть сценарий, в котором я представляю UITextFields пользователю одно за другим в своем приложении для iOS, написанном на swift. Я добился этого, используя представление коллекции и имея ячейку, в которой есть текстовое поле. Я хочу, чтобы в ячейках автоматически отображалась клавиатура для текстового поля, поэтому я добавил код, чтобы текстовое поле стало первым ответчиком. Теперь проблема в том, что при загрузке представления коллекции появляется клавиатура, но текстовое поле недоступно для редактирования. Я понятия не имею, что здесь происходит. Здесь я также прилагаю код.
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: MortgageFormCell.identifier, for: indexPath) as! MortgageFormCell
let m = formMenu[indexPath.item]
cell.textField.tag = m.tag // every textField has separate tag
let t = m.title
let p = m.placeholder
cell.subtitleLabel.text = m.subtitle
cell.textField.becomeFirstResponder()
cell.titleLabel.text = t
cell.textField.placeholder = p
cell.textField.delegate = nil
cell.textField.keyboardType = .decimalPad
cell.textField.addTarget(self, action: #selector(self.textChanged(_:)), for: .editingChanged)
return cell
Помогите мне понять, что происходит не так и как я могу это исправить.
Комментарии:
1. Я думаю, что ваша структура и способ неправильны. Эта строка создаст проблему внутри ячейки для метода « cell.TextField.becomeFirstResponder()«