2017-09-25 81 views
1
// 
// 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。 */touchesBegan在我的代码中没有响应

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

回答

0

既然你在这里使用了一个表视图,它很可能是你的表视图的滚动视图吸收触摸之前,你的观点能得到他们。

如果你想隐藏每当用户点击您的表视图的键盘,你可以考虑用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()

通知此对象,它已被要求relinq作为第一响应者在其窗口中使用其状态 。