首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >touchesBegan不会触发

touchesBegan不会触发
EN

Stack Overflow用户
提问于 2014-07-21 06:02:33
回答 1查看 994关注 0票数 0

当用户点击视图时,我有以下代码来隐藏我的键盘,但touchesBegan根本没有触发:

代码语言:javascript
复制
class LoginViewController: UIViewController, UITextFieldDelegate {

    @IBOutlet var emailAddress: UITextField

    @IBOutlet var password: UITextField



    override func viewDidLoad() {

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

        //Delegate fields
        self.emailAddress.delegate = self
        self.password.delegate = self


    }

     override func touchesBegan(touches: NSSet!, withEvent event: UIEvent!) {
        self.emailAddress.resignFirstResponder()
        self.password.resignFirstResponder()
    }

    func textFieldShouldReturn(textField: UITextField!) -> Bool{
        self.emailAddress.resignFirstResponder()
        self.password.resignFirstResponder()
        return true;
    }

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


}

此视图控制器位于导航控制器内部,因此不确定它是否与响应器链有关

EN

回答 1

Stack Overflow用户

发布于 2014-07-21 06:13:41

你的代码对我来说工作得很好。(不过,我通常会在每个文本字段上使用self.view.endEditing(YES)而不是resignFirstResponder。)

最有可能的是,你正在点击的视图以某种方式阻止了事件被发送到响应者链上。它可以是userInteractionEnabled,0的alpha,不会将事件发送到响应器链上的touchesBegan的重写,吃触摸事件的手势识别器,等等。如果你做了一个显示这个问题的最小测试用例,可能就会变得很明显是哪一个。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24855347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档