Swift2 tvOS:一种让UISearchController不显示为按钮的方法?
此代码Swift2 tvOS:一种让UISearchController不显示为按钮的方法?,swift2,tvos,uisearchcontroller,apple-tv,Swift2,Tvos,Uisearchcontroller,Apple Tv,此代码 var searchController: UISearchController! @IBOutlet weak var collectionView: UICollectionView! override func viewDidLoad() { super.viewDidLoad() searchController = UISearchController(searchResultsController: nil) searchController.se
var searchController: UISearchController!
@IBOutlet weak var collectionView: UICollectionView!
override func viewDidLoad() {
super.viewDidLoad()
searchController = UISearchController(searchResultsController: nil)
searchController.searchResultsUpdater = self
searchController.obscuresBackgroundDuringPresentation = false
view.addSubview(searchController.searchBar)
getItems()
}
产生以下结果:
请注意,搜索栏显示为一个卡在左上角的按钮(因为这是一个选项卡式应用程序,它在第一次出现时显示在选项卡栏下。“按钮”按钮用于接收测试焦点)
按下按钮后的外观如下:
第二幅图显示了我希望搜索选项卡打开时的外观,以及我认为它在tvOS中的外观
如何使searchController显示在第二个屏幕截图中?很多tvOS应用程序都能做到这一点,所以我知道这一定是可能的。我已经仔细阅读了文件,但一定是遗漏了什么
一个相关的问题是下面的collectionView无法从searchController获得焦点。必须使用远程菜单按钮返回以使collectionView聚焦
当视图出现时,如何使searchController显示在第二个屏幕截图中
我怎样才能让collectionView从searchController获得焦点,而不必返回选项卡栏?我终于在tvOS开发者库中看到了这篇文章 所有iOS第一响应机制都在tvOS上工作。这允许 开发人员提供一个UI,可见或隐藏,然后 文本字段通过调用 成为它的第一反应者。此操作将导致文本字段 在用户无需导航到 文本字段并单击它 所以,加上
searchController.searchBar.becomeFirstResponder()
显示我希望用户开始使用的内联键盘。但是,在调焦引擎再次启动之前,必须按下遥控器上的菜单按钮。菜单按钮也会关闭键盘,搜索栏会返回其按钮状态
这是对我第一个问题的回答。第二个仍然不清楚。添加
self.searchController.searchBar.frame=CGRectMake(960-(self.searchController.searchBar.frame.size.width/2),200,self.searchController.searchBar.frame.size.width,44.0)
从选项卡栏下取出按钮,但生成的UI是一个破坏tvOS界面逻辑的乱码(在我看来)。