iOS UITableView reloadData/reloadRowsAtIndexPaths 导致键盘收起不能连续输入

情况
UITableViewCell中的一个UITextField的数字键盘,效果是每次输入数字后刷新整个表视图,这里使用了reloadData,会出现每输入一个数字就收回键盘不能连续输入的问题。
原因
系统的reloadData和reloadRowsAtIndexPaths在执行的时候如果发现有的UITableView的子视图(例如这里的cell)有键盘已弹出正在响应(isFirstResponder),就会收起该键盘(resignFirstResponder)。
一种处理方法
有键盘的cell自己来做控件显示更新,其他的cell刷新走reloadRowsAtIndexPaths。获取可见cell坐标数组(indexPathsForVisibleRows)剔除那个有键盘的IndexPath。

猜你喜欢

转载自blog.csdn.net/Mr17Liu/article/details/84936099