所以,我已经看过使用.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初始化它。我有什么不对的吗?
答案 0 :(得分:0)
我明白了!这是一个非常优雅的解决方案。您基本上必须使用界面显示窗口(模拟位置之前的调试选项)并找出UISearchBarTextField
深的子视图的数量。
编辑:因此,假设结构将始终相同,但不保证。可以递归检查子视图以找到UITextField
,但这假设只有1个。除了Apple创建一个可靠地返回字段的函数外,基本上没有万无一失,所以而不是去递归函数路径,我只是按照建议选择了这个。
let theBar:UITextField? = searchBar.subviews[0].subviews[0].subviews[0] as? UITextField
theBar?.keyboardAppearance = UIKeyboardAppearance.Dark