【问题标题】: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()
    }

} 

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

【问题讨论】:

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

标签: ios iphone swift


【解决方案1】:

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

你的手势应该有Sent actions

这应该足够了。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-24
    • 1970-01-01
    • 1970-01-01
    • 2021-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多