我正在尝试为“位置”添加另一个文本字段。当用户专注于搜索栏时,在导航栏上的搜索栏下方输入到UISearchController。
我所拥有的以及我希望去的地方的例子:
我尝试过这样的事情,这是行不通的:
var searchController: UISearchController!
func searchBarTextDidBeginEditing(searchBar: UISearchBar) {
var myTextField: UITextField = UITextField(frame: CGRect(x: 0, y: 0, width: 200.00, height: 40.00))
myTextField.backgroundColor = UIColor.purpleColor()
myTextField.text = "Location"
myTextField.borderStyle = UITextBorderStyle.None
searchController.view.addSubview(myTextField)
}
任何帮助都会很棒!感谢。
答案 0 :(得分:4)
不知道你是否找到了答案。让我建议我的解决方案。
您的代码没有错。它工作正常。但是,它没有显示的原因是,当您在搜索栏中单击func searchBarTextDidBeginEditing(searchBar: UISearchBar)
对它没有影响,因为您可能忘记设置搜索栏的委托。
我尝试了你的代码,在设置委托后,它运行正常。当Y位置为0时,它也隐藏在导航栏后面。解决方案是,
UISearchBarDelegate
添加到您的班级在viewDidLoad()
override func viewDidLoad(){
super.viewDidLoad()
searchcontroller.searchbar.delegate = self
}
在searchBarTextDidBeginEditing
func searchBarTextDidBeginEditing(searchBar: UISearchBar) {
var myTextField: UITextField = UITextField(frame: CGRect(x: 0, y: searchController.searchBar.frame.height + 20, width: view.frame.size.width, height: 40.00))
myTextField.backgroundColor = UIColor.purpleColor()
myTextField.text = "Location"
myTextField.borderStyle = UITextBorderStyle.None
searchController.view.addSubview(myTextField)
}
希望它有所帮助。
答案 1 :(得分:1)
试试这样:
您只需创建一个自定义NavigationBar,将文本字段添加到该文本字段并覆盖SearchController委托方法
尝试它可能有效。