tvOS:无论如何都要阻止搜索键盘在滚动时崩溃?

Pro*_*air 16 uisearchbardelegate apple-tv swift uisearchcontroller tvos

所以我有一个标准设置,用于在我的tvOS应用程序中设置搜索视图.

let storyboard = UIStoryboard(name: "Main", bundle: nil)
guard let resultsController = storyboard.instantiateViewControllerWithIdentifier(SearchResultsViewController.storyboardIdentifier) as! SearchResultsViewController

let searchController = UISearchController(searchResultsController: resultsController)
searchController.searchResultsUpdater = resultsController
searchController.hidesNavigationBarDuringPresentation = false
searchController.searchBar.placeholder = NSLocalizedString("Enter keyword (e.g. iceland)", comment: "")

let searchContainer = CustomUISearchContainerViewController(searchController: searchController)
Run Code Online (Sandbox Code Playgroud)

当推入导航堆栈时,这是一个视图,其顶部有搜索栏,下面的结果如下所示

在此输入图像描述

因此,每当结果很大并且我必须滚动键盘时,只要我向上滚动并向上滑过最顶端的结果,键盘就会折叠并再次展开.有什么方法可以防止这种行为吗?我只是希望它一直保持开放状态.我想的可能是子类化UISearchController,但我不确定在那里甚至可以替换

小智 0

我不确定这是否是正确的答案,但如果您这样做,您的搜索栏将不会崩溃。我设置了一个带有水平滚动的 UICollectionView,但从未遇到过这个问题。它可能需要以不同的方式布局您的视图,如果您有数百个结果,这可能不是最好的解决方案,但它可以防止搜索栏及其“键盘”消失。