Swift 当焦点位于搜索栏上时,如何向UISearchController添加另一个文本字段?
当用户关注导航栏上的搜索栏下方的搜索栏时,我试图为UISearchController的“位置”输入添加另一个文本字段 我所拥有的以及我希望它去哪里的示例: 我试过这样的方法,但不起作用:Swift 当焦点位于搜索栏上时,如何向UISearchController添加另一个文本字段?,swift,uitextfield,uisearchdisplaycontroller,uisearchcontroller,Swift,Uitextfield,Uisearchdisplaycontroller,Uisearchcontroller,当用户关注导航栏上的搜索栏下方的搜索栏时,我试图为UISearchController的“位置”输入添加另一个文本字段 我所拥有的以及我希望它去哪里的示例: 我试过这样的方法,但不起作用: var searchController: UISearchController! func searchBarTextDidBeginEditing(searchBar: UISearchBar) { var myTextField: UITextField = UITextField(fram
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)
}
任何帮助都会很好!谢谢
像这样尝试:
您只需创建一个自定义导航栏,将文本字段添加到其中,并覆盖SearchController委托方法
试试看,也许有用 不知道你是否找到了答案。让我提出我的解决办法 代码中没有错误。它很好用。但它不显示的原因是,当您在搜索栏中单击时,
func searchbartextdebeginediting(searchBar:UISearchBar)
对它没有影响,因为您可能会忘记为搜索栏设置委托
我尝试了你的代码,在设置委托之后,它就可以正常工作了。当Y位置为0时,它也隐藏在导航栏后面。解决办法是,
UISearchBarDelegate
添加到您的类中viewDidLoad()中
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)
}
希望有帮助。您能添加更多代码吗。我想知道你是怎么处理的。
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)
}