Это - лучшее решение, чтобы держать клавиатуру открытой во время перезагрузки UITableView
содержимого.
Если это не помогло, не беспокойтесь.У меня есть хак, чтобы открыть клавиатуру как есть.
Пожалуйста, следуйте приведенным ниже инструкциям, я уверен, что это сработает для вас.
- Возьмите один манекен
UITextField
на ваш взглядcontroller(Storyboard)
- Дайте
constraints
как хотите (не имеет значения) - Всегда держите скрытую пустышку
UITextField
всегда с раскадровки. - Возьмите
outlet
скрытогопустышка UITextField
в файл класса. - Теперь время для взлома до
reloadData()
, просто позвоните txtDummy.becomeFirstResponder()
См. приведенный ниже код, который я сделал для решения проблемы.
class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {
@IBOutlet weak var txtDummy: UITextField!
@IBOutlet weak var tblView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
tblView.register(UINib.init(nibName: "CustomTableViewCell", bundle: nil), forCellReuseIdentifier: "CustomTableViewCell")
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 10
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "CustomTableViewCell", for: indexPath) as! CustomTableViewCell
cell.txtField?.text = "text"
return cell
}
@IBAction func reloadtable(){
txtDummy.becomeFirstResponder()
tblView.reloadData()
//Perform other operation after some delay
}
}
См. Ниже прилагаемый исходный код демонстрационного приложения.Если потребуется дальнейшая помощь.
Исходный код
Пожалуйста, отметьте как принятый, если он будет работать для вас.