Ios 执行segue时隐藏键盘转换
我目前正在为我的应用程序进行注册,我有3个ViewController和一个文本字段。我想隐藏这些视图控制器之间的任何键盘转换 例如: 当我在VC:A时,我正在用一个打开的键盘执行一个到VC:B的序列,然后一个新的文本字段将成为第一个响应者,一个小的键盘转换将可见。(首先,键盘关闭,然后新字段的键盘再次打开)Ios 执行segue时隐藏键盘转换,ios,swift,Ios,Swift,我目前正在为我的应用程序进行注册,我有3个ViewController和一个文本字段。我想隐藏这些视图控制器之间的任何键盘转换 例如: 当我在VC:A时,我正在用一个打开的键盘执行一个到VC:B的序列,然后一个新的文本字段将成为第一个响应者,一个小的键盘转换将可见。(首先,键盘关闭,然后新字段的键盘再次打开) 那么,如何才能使多个视图控制器的键盘保持全局打开状态呢?要使多个视图控制器的键盘保持全局打开状态,您必须将文本视图.becomeFirstResponder()放在您的视图控制器中。(在加
那么,如何才能使多个视图控制器的键盘保持全局打开状态呢?要使多个视图控制器的键盘保持全局打开状态,您必须将
文本视图.becomeFirstResponder()
放在您的视图控制器中。(在加载页面时,您需要显示键盘)。为每个文本字段设置IBOutlet
@IBOutlet weak var textView: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
textView.becomeFirstResponder()
}
实现此功能后,如果在模拟器中看不到任何键盘,只需按-
cmd+k
或shift+cmd+k
仅对模拟器执行此操作。谢谢。这可能不是最好的方法,你可以像孩子一样添加第二个VC
@IBAction func btnClicked(_ sender: Any) {
let vc = self.storyboard?.instantiateViewController(withIdentifier: "dd") as! secViewController
self.addChildViewController(vc)
self.view.addSubview(vc.view)
// illusion of push VC
vc.view.frame = CGRect.init(x: self.view.frame.width, y: 0 , width: self.view.frame.width, height: self.view.frame.width)
UIView.animate(withDuration: 0.5 , animations: {
vc.view.frame = CGRect.init(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.width)
}
)
vc.didMove(toParentViewController: self)
}
解决方案是使用一个自定义UINavigationController,该控制器带有一个不可见或隐藏的UITextField(只需将帧归零并将其添加到子视图),您可以将其设置为成为加载时的第一响应者
从这里开始,每次转换视图时将其设置为第一响应者,并在ViewDidDisplay上设置真正的文本字段。我目前就是这样做的。ViewController之间仍有一个小键盘转换(闪烁)。你是说键盘出现时的黑色空间?谢谢帮助!。不幸的是,我需要所有的风投都打包在一个navigationController@dfi你有没有想过如何做到这一点?