gpt4 book ai didi

swift - 当焦点在搜索栏上时如何向 UISearchController 添加另一个文本字段?

转载 作者:IT王子 更新时间:2023-10-29 05:37:12 29 4
gpt4 key购买 nike

当用户将注意力集中在导航栏上搜索栏下方的搜索栏上时,我正在尝试为 UISearchController 添加另一个用于“位置”输入的文本字段。

我所拥有的以及我希望它去哪里的示例:

enter image description here

我试过类似这样的方法,但不起作用:

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)
}

任何帮助都会很棒!谢谢。

最佳答案

不知道你是否找到了答案。让我提出我的解决方案。

你的代码没有错。它工作正常。但它不显示的原因是,当您单击搜索栏时 func searchBarTextDidBeginEditing(searchBar: UISearchBar) 对其没有任何影响,因为您可能忘记为搜索栏设置委托(delegate)。

我试过你的代码,在设置委托(delegate)后它工作正常。它还隐藏在导航栏后面,因为 Y 位置为 0。解决方案是,

  1. UISearchBarDelegate 添加到您的类中
  2. viewDidLoad()

      override func viewDidLoad(){
    super.viewDidLoad()
    searchcontroller.searchbar.delegate = self
    }
  3. 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)
    }

希望对您有所帮助。

关于swift - 当焦点在搜索栏上时如何向 UISearchController 添加另一个文本字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31468601/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com