gpt4 book ai didi

ios - 带有搜索栏的 UITableView 作为 inputView

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:58:55 32 4
gpt4 key购买 nike

我有一个在其输入 View 上显示表格 View 并在选择时返回值的文本字段我向表格 View 添加了一个搜索栏但问题是,当我点击搜索栏表格 View 时自动关闭并重新打开这意味着我什至无法单击搜索栏。有什么建议吗?

这是代码。

class myClass: UIViewController, UITableViewDataSource, UITableViewDelegate, UINavigationBarDelegate, UISearchBarDelegate {

//the all are in viewdidload
var tableView: UITableView = UITableView()
tableView = UITableView(frame: UIScreen.mainScreen().bounds, style: UITableViewStyle.Plain)
tableView.delegate = self
tableView.dataSource = self
tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")

let navigationBar = UINavigationBar(frame: CGRectMake(0, 0, self.view.frame.size.width, 44))
let navigationItem = UINavigationItem()
var searchBar:UISearchBar = UISearchBar()
searchBar.searchBarStyle = UISearchBarStyle.Prominent
searchBar.placeholder = " Search..."
searchBar.sizeToFit()
searchBar.translucent = false
searchBar.backgroundImage = UIImage()
searchBar.delegate = self
navigationBar.items = [navigationItem]

tableView.tableHeaderView = navigationBar

toTextField.inputView = self.tableView

}

最佳答案

单击文本字段后,您的文本字段将成为第一响应者。既然你提到了 toTextField.inputView = self.tableView;所以你的 TableView 出现了。

只要您点击搜索栏,现在搜索栏就是第一响应者。由于 TextFIeld 不再是第一响应者,因此 TableView 消失了。

一个解决方案可以是:不要将表格 View 作为文本字段的输入 View 。那是 : //toTextField.inputView = self.tableView

相反,您可以使用 TextField 的委托(delegate)方法之一呈现 TableView Controller :

 func textFieldDidBeginEditing(textField: UITextField)   {
let test : UITableViewController = UITableViewController.init(style: UITableViewStyle.Plain)
test.tableView = self.tableView
let testNav: UINavigationController = UINavigationController(rootViewController: test);
self.presentViewController(testNav, animated: true, completion: nil)
}

关于ios - 带有搜索栏的 UITableView 作为 inputView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38514694/

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