Swift 4技术问询:如何实现键盘始终显示且永不隐藏?
让键盘始终保持显示不隐藏的解决方案
嘿,针对你的需求(让键盘一直停留在页面上不隐藏),我来给你调整代码并拆解关键逻辑:
你已经在viewWillAppear里通过让文本框成为第一响应者唤起了键盘,但默认情况下,文本框失去焦点(比如点击空白区域、其他控件)时键盘会自动收起。我们只需要两个核心操作就能解决这个问题:
1. 利用UITextFieldDelegate阻止编辑结束
既然你已经设置了textField1.delegate = self,只需要实现下面这个代理方法,让文本框永远不允许结束编辑状态:
func textFieldShouldEndEditing(_ textField: UITextField) -> Bool { // 返回false,直接阻止文本框结束编辑,键盘就不会被收起 return false }
2. 优化现有代码的执行顺序
把代理设置放在唤起键盘之前,这样逻辑更规范(虽然当前顺序也能运行,但调整后更稳妥):
override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) textField1.delegate = self // 先绑定代理 textField1?.becomeFirstResponder() // 唤起系统键盘 numberKeyPadPopUp() // 执行你的自定义数字键盘弹出逻辑 }
额外注意点
- 如果你的
numberKeyPadPopUp()是自定义键盘,要确保这个自定义键盘里没有“收起键盘”的按钮或逻辑,要是有的话得移除或禁用。 - 要是之后需要主动收起键盘(比如点击某个确认按钮),可以临时修改代理方法返回
true,调用textField1.resignFirstResponder()后再恢复原来的逻辑就行。
内容的提问来源于stack exchange,提问作者Box House
相关产品推荐
相关产品推荐

