在IOS中显示警报时,键盘不会从View中退出
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在IOS中显示警报时,键盘不会从View中退出相关的知识,希望对你有一定的参考价值。
在ios 8中显示警报(密码错误)时,键盘会自动打开并隐藏alert
(由于屏幕大小,只能在Iphone 4s中),因此我无法单击“确定”而我也无法关闭键盘,因为首先,我需要关闭alert
!
(似乎应用程序正在恢复最后一个键盘的状态并再次出现)
如何在调用alert
之前关闭键盘?(这样状态将“关闭”)
我试过了:
myTextField!.resignFirstResponder()
在调用按钮时,但它没有工作,alert
显示并自动键盘打开它!
如果myTextField!.resignFirstResponder()
无法正常工作,请在调用此警告之前尝试此操作 - > self.view.endEditing(true)
以上功能效果不好,试试
选择-1:使用响应者链
UIApplication.sharedApplication().sendAction("resignFirstResponder", to:nil, from:nil, forEvent:nil)
这将每次重新签署第一个响应者(并解除键盘),而无需将resignFirstResponder发送到正确的视图。无论如何,这都会解雇键盘。到目前为止,这是最好的方法:不用担心第一响应者是谁
选择-2:UIView的endEditing
(假设您的文本字段是您调用此视图的子视图)。大多数时候:
self.view.endEditing(true)
将Delegate
设为myTextField
包括
func textFieldShouldReturn(textField: UITextField) -> Bool
{
textField .resignFirstResponder()
return true
}
其他明智的尝试以下
var activeField : UITextField!
func textFieldDidBeginEditing(textField: UITextField)
{
activeField = textField
}
func textFieldDidEndEditing(textField: UITextField)
{
activeField = nil
}
func textFieldShouldReturn(textField: UITextField) -> Bool
{
textField .resignFirstResponder()
return true
}
在警报出现之前调用activeField.resignFirstResponder()
我想从iOS8你需要使用UIAlertController而不是UIAlertView。在iOS8及更高版本中使用UiAlertView会导致键盘不必要地弹出。我已经看到了这个,我提出了使用UIAlertController for iOS8及以上版本的条件。在下面的版本UIAlertView应该工作正常
这是iOS 8上的UIAlertView错误。我有同样的问题,但UIAlertController没有问题。 :3
自iOS8以来,UIAlertView已被弃用。
https://developer.apple.com/reference/uikit/uialertview
在Swift 4中:下面的代码对我有用
DispatchQueue.main.async() {
self.view.endEditing(true)
}
以上是关于在IOS中显示警报时,键盘不会从View中退出的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS8.3 上显示警报视图时,iOS 键盘通知不必要地触发
Swift 中显示 UIAlertcontroller 时保持键盘打开?