当用户将焦点放在搜索栏上,正好位于导航栏上的“搜索栏”下方时,我正在尝试为“位置”输入添加另一个文本框.
我有什么,我想要去的例子:
我试过这样的东西,这不行:
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) }
任何帮助将是伟大的!谢谢.
不知道你是否找到答案.让我建议我的解决方案.
原文链接:https://www.f2er.com/swift/318884.html你的代码没有错.工作正常但是为什么它不显示的原因是,当您在搜索栏中点击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) }
希望它有帮助.