【问题标题】:How can I make the keyboard resign after pressing enter and/or pressing outside the keyboard area?按下回车键和/或在键盘区域外按下后,如何使键盘退出?
【发布时间】:2016-07-22 15:12:12
【问题描述】:

我在 stackoverflow 上查看了其他几个答案,但我似乎无法将它们应用到我的代码中:

import UIKit
class GraphItemCell: UITableViewCell, UITextFieldDelegate {

@IBOutlet weak var itemNameLabel: UITextField?
@IBOutlet weak var itemDescriptionLabel: UITextField?
@IBOutlet weak var pointScore: UITextField?


override func awakeFromNib() {
    super.awakeFromNib()
    // Initialization code
}

override func layoutSubviews() {
    super.layoutSubviews()
}
//TextField delegate
func textFieldShouldReturn(textField: UITextField) -> Bool {
    textField.resignFirstResponder()
    return false
}


override func setSelected(selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)

    // Configure the view for the selected state
}


}

【问题讨论】:

  • 我使用了一个手势识别器并确实将 resignFirstResponder 放在那里

标签: ios swift keyboard uitextfield


【解决方案1】:

在您的 UITableViewCell 中为点击手势添加 UIGestureRecognizer,并在点击单元格时调用 [itemNameLabel endEditing] && [itemDescriptionLabel endEditing]。

【讨论】:

  • @Guarav Pal,我不确定该怎么做。我将 UIGestureRecognizer 分配给一个常量: let tapRec = UIGestureRecognizer() 但我知道从那里去哪里。
【解决方案2】:

//当用户在键盘外触摸时关闭键盘

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?){
    view.endEditing(true)
    super.touchesBegan(touches, withEvent: event)
}

这是我在我的应用中使用的

【讨论】:

  • @Dan L,我在类内部有这个确切的实现,继承自 UITableViewController,连接到正在编辑的单元格所在的 tableView。我的类应该从其他任何东西继承,还是我可能在错误的地方声明了这个函数?
  • @KeithFrazier98 所以你在课堂上调用这个函数?将我的代码复制并粘贴到您的项目中,用我的函数替换您的函数,然后再试一次。请注意,您不要在 GraphTermCell 类中调用它,而是在具有 tableViewController 的视图控制器中调用它,该单元格类在其中控制表视图单元格。如果 tableView 占据了整个视图控制器,代码可能不起作用,因为你触摸的任何地方都是 tableViewCell。
【解决方案3】:

在 StoryBoard 中设置 TextField 委托。

func textFieldShouldReturn(textField: UITextField) -> Bool {
            activeTextFiled=textField
            return activeTextFiled.resignFirstResponder();
        }

        override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?){
            view.endEditing(true)

        }

【讨论】:

    【解决方案4】:

    将手势识别器添加到您的UITableView,然后在用户点击您的表格视图时调用endEditing(true) 方法

    【讨论】:

      【解决方案5】:

      首先在textFieldShouldReturn 中返回true,返回false 表示您拒绝停止编辑。 第二个用于在外部按下时关闭键盘 touchesbegin write

      self.view.endEditing(true)
      

      【讨论】:

        猜你喜欢
        • 2014-06-08
        • 1970-01-01
        • 2022-12-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-18
        • 2021-04-21
        • 2011-06-16
        相关资源
        最近更新 更多