【问题标题】:touchesBegan not responding in my codetouchesBegan 在我的代码中没有响应
【发布时间】:2017-09-25 23:55:02
【问题描述】:
//
//  CommentViewController.swift
//  Bordy
//
//  Created by Micheal Tyler on 9/22/17.
//  Copyright © 2017 Bordy,LLC. All rights reserved.
//

import UIKit
import FirebaseDatabase
import FirebaseAuth
class CommentViewController: UIViewController {

    @IBOutlet weak var commentTextField: UITextField!
    @IBOutlet weak var sendButton: UIButton!
    @IBOutlet weak var tableView: UITableView!
    @IBOutlet weak var constraintToBottom: NSLayoutConstraint!

    let postId = "-KuXb-8C5kijYNqOOihB"
    var comments = [Comment]()
    var users = [Users]()

    override func viewDidLoad() {
        super.viewDidLoad()
        tableView.dataSource = self
        tableView.estimatedRowHeight = 77
        tableView.rowHeight = UITableViewAutomaticDimension
        empty()
        handleTextField()
        loadComments()

        NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardWillShow(_:)), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
        NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardWillHide(_:)), name: NSNotification.Name.UIKeyboardWillHide, object: nil)
    }

/* 这是我放置代码的地方,当我在模拟器中点击屏幕时没有打印任何内容,如果用户点击屏幕退出 textField,我的键盘也不会隐藏。 */

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        view.endEditing(true)
        print("12121")
    }

【问题讨论】:

    标签: swift touchesbegan


    【解决方案1】:

    由于您在这里使用的是表格视图,因此您的表格视图的滚动视图很可能在您的视图获得触摸之前就吸收了这些触摸。

    如果您想在用户点击您的表格视图时隐藏键盘,您可以考虑使用UITapGestureRecognizer 来代替:

     // MARK: LifeCycle
    
     override func viewDidLoad() {
        super.viewDidLoad()
    
        tableView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(handleHideKeyboard)))
     }
    
     // MARK: User Interaction
    
     func handleHideKeyboard() {
        commentTextField.resignFirstResponder()
     }
    

    请注意,您可以使用resignFirstResponder() 方法隐藏您的键盘:

    resignFirstResponder()

    通知该对象它已被要求放弃其状态 作为其窗口中的第一响应者。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-30
      • 1970-01-01
      • 2014-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多