我正在尝试从表中选择单元格中选择内容,这里我使用的是didselectrowatindexpath
方法,但是在长按单元格后它会调用。
这可能是重复的问题,但我尝试了很多解决方案,但我的问题没有得到解决 这里是我正在使用的代码
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return autocompleteUrls.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("AutoCompleteRowIdentifier", forIndexPath: indexPath) as! DrawerTableViewCell
let index = indexPath.row as Int
cell.autoCompleteLabel!.text = autocompleteUrls[index].email!
return cell
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath){
print("You selected cell #\(indexPath.row)!")
print("didSelectRowAtIndexPath")
let selectedCell = autocompleteTableView.cellForRowAtIndexPath(indexPath)! as! DrawerTableViewCell
print("Selected Table Text =\(selectedCell.autoCompleteLabel!.text)")
textEmail.text = selectedCell.autoCompleteLabel!.text
autocompleteTableView.hidden = true
}
我的viewDidLoad
就是
override func viewDidLoad() {
pastUrls = defaults.objectForKey("autoCompleteEmail") as? [String] ?? [String]()
spinnerInitialization()
super.viewDidLoad()
self.hideKeyboardWhenTappedAround()
autocompleteTableView.tableFooterView = UIView()
autocompleteTableView.hidden = true
autocompleteTableView.delegate = self
autocompleteTableView.dataSource = self
textEmail.delegate = self
}
更新: - 代码hideKeyboardWhenTappedAround
extension UIViewController {
func hideKeyboardWhenTappedAround() {
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "dismissKeyboard")
view.addGestureRecognizer(tap)
}
func dismissKeyboard() {
view.endEditing(true)
}}
请帮助我,我将非常感谢你
答案 0 :(得分:3)
感谢Dev.RK
在这里,我使用代码来隐藏我在view.addGestureRecognizer(tap)
中使用hideKeyboardWhenTappedAround()
方法的键盘
@ Dev.Rk建议我在view.addGestureRecognizer(tap)
之前添加一行
该行是tap.cancelsTouchesInView=false
,可以解决我的疯狂问题
答案 1 :(得分:0)
为单元格内的标签启用UserInteraction。
并验证该单元格是否启用了UserInteraction id。
我希望这些信息能为您提供帮助。
答案 2 :(得分:0)
您需要解释您的结构。我假设你在UIViewController中使用tableView。 但是,为什么在didSelect方法中有以下行?
let selectedCell = autocompleteTableView.cellForRowAtIndexPath(indexPath)! as! DrawerTableViewCell
而不是
let selectedCell = tableView.cellForRowAtIndexPath(indexPath)! as! DrawerTableViewCell
我知道您将表视图的名称指定为autocompleteTableView,但是不是表视图的参考来自didSelectRow方法本身吗?