点击手势识别器不会触发

Posted

技术标签:

【中文标题】点击手势识别器不会触发【英文标题】:tap gesture recognizer does not get fire 【发布时间】:2016-03-14 20:28:25 【问题描述】:

我想实现一个动作,如果用户点击屏幕上的某个位置,那么键盘应该会消失。

我有一个应用程序,如下所示

当我点击文本字段时,会出现键盘,这很好。 现在我想,当我点击屏幕上的某个位置时,键盘应该会消失。 我实现了一个具有以下属性值的点击手势识别器:

我在视图控制器中绑定了以下动作的点击手势识别器

import UIKit

class ViewController: UIViewController 

    @IBOutlet weak var nameField: UITextField!
    @IBOutlet weak var numberField: UITextField!

    override func viewDidLoad() 
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    

    override func didReceiveMemoryWarning() 
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    

    @IBAction func textFieldDoneEdition(sender: UITextField) 
        sender.resignFirstResponder()
    

    @IBAction func onTapGestureRecognized(sender: AnyObject) 

        nameField.resignFirstResponder()
        numberField.resignFirstResponder()
    

 

点击手势识别器绑定到该函数。 当我点击屏幕上的某个地方时,它根本不起作用。键盘还在。我究竟做错了什么?

【问题讨论】:

您是否将触摸手势识别器拖到视图上?该函数实际上被调用了吗? 我更新了我的帖子,请考虑最后一张图片。我在函数中设置了断点,当点击屏幕上的某个地方时它不会停止。 首先,断点永远不会被命中,因为它们不活跃(为了让它们活跃,它们需要是蓝色的(不褪色))。再次单击它们使它们变为蓝色。 您可以在选择轻击手势识别器的情况下制作连接检查器(实用程序面板中最右侧的箭头)的屏幕截图吗? postimg.org/image/5kahv4tcd 【参考方案1】:

您的视图应该有关联的手势。

你的手势应该有Sent actions

这应该足够了。

如果出于某种神秘原因,这些都不起作用,您可以选择关闭键盘。

func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent)

【讨论】:

以上是关于点击手势识别器不会触发的主要内容,如果未能解决你的问题,请参考以下文章

为什么iOS中的轻敲手势识别器的界面构建器操作不会触发? [重复]

将点击手势添加到任何视图都不会触发

如何以编程方式触发 UIView 的点击手势识别器

点击手势识别器不会瞄准动作

UITapGestureRecognizer 莫名其妙地停止识别点击手势

如果将点击手势识别器添加到其背景视图中,则不会调用 iOS didSelectItemAtIndexPath