在tvos中更改焦点时如何在UISearchController中关闭键盘?

Mel*_*Mel 7 swift uisearchcontroller tvos

我是tvos的新手,我正在尝试实现一个UISearchController视图,在我的SearchResultsViewController中,我有两个UICollectionViews一个显示在另一个上面: 在此输入图像描述

问题是当用户向下滑动以选择UICollectionView中的一个项目时,键盘不会被忽略.即使向上滑动以选择键盘也无法完全向上滚动,因此无法看到您正在键入的内容.结果视图是这样的: 在此输入图像描述

理想情况下,当用户向下滑动以关注界面中的任何其他内容时,我想关闭键盘.我查看了Apple的tvos UIKit目录,他们的示例显示了一个UISearchController,它在更改焦点时解除了键盘,但我没有看到他们正在做任何不同的事情.

这是我用来点击按钮时设置我的UISearchController的代码:

@IBAction func onSearchButton(sender: AnyObject) {
    guard let resultsController = storyboard?.instantiateViewControllerWithIdentifier(SearchResultsViewController.storyboardID) as? SearchResultsViewController else { fatalError("Unable to instantiate a SearchResultsViewController.") }

    // Create and configure a `UISearchController`.
    let searchController = UISearchController(searchResultsController: resultsController)
    searchController.searchResultsUpdater = resultsController
    searchController.hidesNavigationBarDuringPresentation = false

    let searchPlaceholderText = NSLocalizedString("Search for a Show or Movie", comment: "")
    searchController.searchBar.placeholder = searchPlaceholderText

    // Present the search controller from the root view controller.
    guard let rootViewController = view.window?.rootViewController else { fatalError("Unable to get root view controller.") }
    rootViewController.presentViewController(searchController, animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)

Mel*_*Mel 4

经过相当多的尝试和错误后,我找到了解决方案。

只要满足以下条件,键盘就会自动关闭: 1) 用户关注的项目位于滚动视图内部 2) 滚动视图内容大小比屏幕高度至少大 1 像素 (1081 像素)。