我正在UISearchController
中实施UICollectionView
,我在viewDidLoad
中定义了搜索控制器以设置搜索结果更新:
searchControllerCollection.searchResultsUpdater = self
这是searchResultsUpdater
方法:
func updateSearchResultsForSearchController(searchController: UISearchController)
{
....
self.CollectionView.reloadData()
}
这是viewForSupplementaryElementOfKind
方法:
func collectionView(collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, atIndexPath indexPath: NSIndexPath) -> UICollectionReusableView {
var header : UICollectionReusableView!
if (kind == UICollectionElementKindSectionHeader) {
header = self.CollectionView.dequeueReusableSupplementaryViewOfKind(kind, withReuseIdentifier: "cell", forIndexPath: indexPath)
header.addSubview(searchControllerCollection.searchBar)
}
return header
}
当我点击搜索控制器时发生问题,然后它调用updateSearchResultsForSearchController
然后它重新加载CollectionView然后它在结束时调用viewForSupplementaryElementOfKind
并且搜索控制器的键盘被解除并且搜索控制器仍然是(我可以说键盘正在显示1秒钟并被解雇,有时在写完一个字母之后,因为它调用了CollectionView来重新加载数据)。如何保持键盘显示?无论如何都要避免再次呼叫viewForSupplementaryElementOfKind
?