Swift 当焦点位于搜索栏上时,如何向UISearchController添加另一个文本字段?

Swift 当焦点位于搜索栏上时,如何向UISearchController添加另一个文本字段?,swift,uitextfield,uisearchdisplaycontroller,uisearchcontroller,Swift,Uitextfield,Uisearchdisplaycontroller,Uisearchcontroller,当用户关注导航栏上的搜索栏下方的搜索栏时,我试图为UISearchController的“位置”输入添加另一个文本字段 我所拥有的以及我希望它去哪里的示例: 我试过这样的方法,但不起作用: var searchController: UISearchController! func searchBarTextDidBeginEditing(searchBar: UISearchBar) { var myTextField: UITextField = UITextField(fram

当用户关注导航栏上的搜索栏下方的搜索栏时,我试图为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)
}
任何帮助都会很好!谢谢

像这样尝试:

您只需创建一个自定义导航栏,将文本字段添加到其中,并覆盖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)
    }