你如何在swift中更改搜索栏的keyboardAppearance?

时间:2016-01-20 17:32:01

标签: swift uisearchbar uikeyboard tvos uisearchcontroller

所以,我已经看过使用.setKeyboardAppearance在Objective-C中执行此操作的代码,但我无法在swift中找到任何等效代码。我正在开发一个tvOS项目,并按照教程使用searchController。我试图调整键盘并有类似的东西

searchController!.searchBar is UITextInputTraits  // returns true
var searchInput = searchController!.searchBar as UITextInputTraits
searchInput.keyboardAppearance = UIKeyboardAppearance.Dark //error

问题在于,每当我尝试完成作业时,我都会得到 Cannot assign to property: 'searchInput' is immutable即使我用var初始化它。我有什么不对的吗?

1 个答案:

答案 0 :(得分:0)

我明白了!这是一个非常优雅的解决方案。您基本上必须使用界面显示窗口(模拟位置之前的调试选项)并找出UISearchBarTextField深的子视图的数量。

编辑:因此,假设结构将始终相同,但不保证。可以递归检查子视图以找到UITextField,但这假设只有1个。除了Apple创建一个可靠地返回字段的函数外,基本上没有万无一失,所以而不是去递归函数路径,我只是按照建议选择了这个。

let theBar:UITextField? = searchBar.subviews[0].subviews[0].subviews[0] as? UITextField
theBar?.keyboardAppearance = UIKeyboardAppearance.Dark