在长时间紧迫的情况下召集了电子电缆

时间:2016-06-22 09:44:20

标签: ios swift swift2 xcode7

我正在尝试从表中选择单元格中选择内容,这里我使用的是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)
}}

请帮助我,我将非常感谢你

3 个答案:

答案 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方法本身吗?