我有一个符合UITextFieldDelegate
@IBOutlet weak var myCoolTextField: UITextField!
我还有一个触发操作表的按钮。
@IBAction func myCoolButton(sender: UIButton) {
let alert = UIAlertController(title: "Hey", message: "Hey there", preferredStyle: .ActionSheet)
let dismissAction = UIAlertAction(title: "Done", style: .Cancel, handler: nil)
alert.addAction(dismissAction)
self.presentViewController(alert, animated: true, completion: nil)
}
如果用户正在编辑myCoolTextField
,他们可以点按myCoolButton
来解除键盘编辑myCoolTextField
,然后UIAlertController接管操作表。当用户取消警报时,键盘会自动弹出并让用户返回编辑myCoolTextField
。
我如何防止这种情况发生?如果用户在编辑myCoolButton
的过程中点击myCoolTextField
,然后取消警报,我就不希望myCoolTextField
自动返回编辑模式。
我有常规的旧textFieldShouldReturn
和touchesBegan
方法,可用于点击屏幕上的任何其他位置。我已尝试在动作表的完成处理程序的演示中尝试使用方法来结束myCoolTextField
的编辑,但它没有做任何事情,因为到那时键盘和文本字段是暂时不活跃。有什么想法吗?
答案 0 :(得分:0)
您可以使用resignFirstResponder
方法解除键盘:
@IBAction func myCoolButton(sender: UIButton) {
myCoolTextField.resignFirstResponder()
let alert = UIAlertController(title: "Hey", message: "Hey there", preferredStyle: .ActionSheet)
let dismissAction = UIAlertAction(title: "Done", style: .Cancel, handler: nil)
alert.addAction(dismissAction)
self.presentViewController(alert, animated: true, completion: nil)
}