【问题标题】:textFieldShouldReturn func not working on scrollViewtextFieldShouldReturn 函数在滚动视图上不起作用
【发布时间】:2018-10-25 16:47:34
【问题描述】:

当 UIscrollview 处于活动状态时,当用户点击屏幕时,如何使文本消失

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        self.view.endEditing(true)
    }
    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        textField.resignFirstResponder()
        return true
    }

我正在使用典型的函数来获取和关闭键盘

我试试

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

【问题讨论】:

  • UIScrollView.endEditing(true) 这不是真的。删除 'UIScrollView' 并输入滚动视图名称
  • 不起作用@IBOutlet var elskroll:UIScrollView! elskroll.endEditing(true) 我什至尝试输出 ImageView 而什么都没有

标签: swift xcode10 touchesbegan


【解决方案1】:

这个在viewdidLoad()

let scrollViewTap = UITapGestureRecognizer(target: self, action: #selector(self.scrollViewTapped))
        scrollViewTap.numberOfTapsRequired = 1
        scroll_view.addGestureRecognizer(scrollViewTap)

这个在课堂上

@objc func scrollViewTapped() {
        scroll_view.endEditing(true) 
        self.view.endEditing(true) // anyone
    }

【讨论】:

    【解决方案2】:

    在 ViewDidLoad 中

    let recognizer = UITapGestureRecognizer(target: self, action: #selector(self.touch))
            recognizer.numberOfTapsRequired = 1
            recognizer.numberOfTouchesRequired = 1
            elskrolll.addGestureRecognizer(recognizer)
    

    elskroll 必须是您的 UIScrollView 名称:

    在 ViewDidLoad 之外

    @objc func touch() {
            //print("Touches")
            self.view.endEditing(true)
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多