You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:13:52