当用户点击视图时,我有以下代码来隐藏我的键盘,但touchesBegan根本没有触发:
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.
}
}此视图控制器位于导航控制器内部,因此不确定它是否与响应器链有关
发布于 2014-07-21 06:13:41
你的代码对我来说工作得很好。(不过,我通常会在每个文本字段上使用self.view.endEditing(YES)而不是resignFirstResponder。)
最有可能的是,你正在点击的视图以某种方式阻止了事件被发送到响应者链上。它可以是userInteractionEnabled,0的alpha,不会将事件发送到响应器链上的touchesBegan的重写,吃触摸事件的手势识别器,等等。如果你做了一个显示这个问题的最小测试用例,可能就会变得很明显是哪一个。
https://stackoverflow.com/questions/24855347
复制相似问题