因此,我已经看到使用.setKeyboardAppearance在Objective-C中执行此操作的代码,但是我很快找不到任何等效的代码。我正在研究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初始化了它。我做错什么了吗?

最佳答案

我想到了!这是一个非常...不明智的解决方案。基本上,您必须使用界面显示窗口(“模拟位置”之前的调试选项)并找出UISearchBarTextField的子视图数目。

编辑:因此,这假定结构将始终相同,这是不能保证的。可以递归地检查子视图以找到UITextField,但是假设只有1个。本质上,除了Apple创建可靠地返回该字段的函数外,没有任何其他方法,所以我没有走递归函数路线,根据建议将其设置为可选。

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

10-06 13:26
查看更多