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

Xcode 9.3.1中UITextViewDelegate无TextViewShouldReturn,如何实现回车隐藏键盘?

关于UITextView收起键盘的正确实现方式

哈哈,你这是把UITextField和UITextView的Delegate方法搞混啦!其实textViewShouldReturn从来就不是UITextViewDelegate里的方法,它是属于UITextFieldDelegate的——毕竟UITextField是单行输入,回车键用来收起键盘很合理,但UITextView是多行输入,系统默认支持换行,所以压根就没给它这个方法~

想要在UITextView里点击回车键收起键盘,正确的做法是用UITextViewDelegate里的textView(_:shouldChangeTextIn:replacementText:)方法,具体实现步骤如下:

  1. 首先确保你已经给UITextView设置了代理:
override func viewDidLoad() {
    super.viewDidLoad()
    yourTextView.delegate = self
}
  1. 实现代理方法,监听回车事件:
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
    // 判断输入的字符是不是回车键
    if text == "\n" {
        // 收起键盘
        textView.resignFirstResponder()
        // 如果不想让UITextView里插入换行符,就返回false;如果需要保留换行,就返回true
        return false
    }
    return true
}

这样设置之后,用户点击回车键时,键盘就会自动收起啦,完全适配你用的Xcode9.3.1版本~

内容的提问来源于stack exchange,提问作者Studwell

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:18:50