如何在重新加载UICollectionView时保持UISearchBar FirstResponder状态?

问题描述

自定义UIViewController包含一个UICollectionViewUISearchBar应该放在collectionView的最上方,并滚动其内容。如果用户在内容中输入搜索文本,则应该在collectionBar保持其FirstResponder状态的同时更新collectionView。

似乎很容易实现的事情。

我发现了其他几个与这类问题有关的主题,但是它们都已经存在了好几年了,并且所提出的解决方案都无效。 我想知道在2020年使用Xcode 11和iOS 13来解决此问题的最佳解决方案是什么。

哪些DID不起作用:

  • 我已将UISearchBar添加到第一部分的标题中。重新加载完整的contentView或其部分时,searchBar会松开firstResponder并关闭键盘。
  • 我已将UISearchBar作为子视图添加到collectionView,并使用collectionViews contentOffset将内容放置在搜索栏下方。尽管searchBar是collectionVies动态视图层次结构的一部分,但问题与以前相同:重新加载完整的contentView或其部分时,searchBar会首先松开firstResponder并关闭键盘。
  • 我在collectionView中添加了一个extras部分,该部分仅显示其标头(包括searchBar)漫游器不包含内容。重新加载其他部分但保留此“搜索部分”时,将关闭键盘。
  • 是否使用collectionView.performBatchUpdates都没有区别。
  • 在collectionView或其部分起作用后,重置firstResponder Status。但是,在这种情况下,键盘将关闭并立即重新出现。这样无法进行快速键入,并且键盘的闪烁非常令人讨厌。

是否有已知的干净方法来解决此问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)