#swift #xcode #uitableview #uiswipeactionsconfiguration
Вопрос:
У меня есть табличное представление, и в ячейках есть текстовое поле. Я хотел бы сделать это текстовое поле недоступным для редактирования, если пользователь не нажмет на действие салфетки. В этом случае я бы хотел, чтобы клавиатура автоматически отображалась в текстовом поле в ячейке, которую они хотят отредактировать.
Следуя учебнику на YouTube (для настройки действий свайпа), я думал, что у меня все готово. Однако, когда я его тестирую, клавиатура на секунду поднимается, а затем снова опускается сама по себе. Он не будет оставаться на ногах. Единственное, что я могу понять, это то, что что-то отвлекает первого ответчика от текстового поля, но я не знаю, как это проверить.
Кажется, все работает просто отлично, за исключением того, что клавиатура отказывается работать. Я поискал в Интернете и ничего не смог найти на нем. Я признаю, что все еще изучаю обработчики завершения, и это все еще немного сбивает с толку. Если бы кто-нибудь мог указать мне правильное направление, я был бы очень признателен.
func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
let renameItem = UIContextualAction(style: .normal, title: "Rename") { contextAction, viewProperty, completionHandler in
let cell = tableView.cellForRow(at: indexPath) as! ItemTableViewCell
cell.nameField.isUserInteractionEnabled = true
cell.nameField.becomeFirstResponder()
completionHandler(true)
}
return UISwipeActionsConfiguration(actions: [renameItem])
}