Xcode 9 TextViewShouldReturn [关闭]

Posted

技术标签:

【中文标题】Xcode 9 TextViewShouldReturn [关闭]【英文标题】:Xcode 9 TextViewShouldReturn [closed] 【发布时间】:2018-05-22 07:44:17 【问题描述】:

过去,要在用户点击返回后关闭键盘,我只需覆盖 TextViewShouldReturn 函数。但是,在重新下载 Xcode(9.3.1 版)后,它似乎不再是 UITextViewDelegate 中的一个函数,而且我在该主题上发现的大多数以前的问题都建议以某种方式覆盖 TextViewShouldReturn。有什么我忘记的或更有效的方法吗?

这是我目前在我的应用程序中查看的内容:

【问题讨论】:

【参考方案1】:

也许您将UITextViewDelegateUITextFieldDelegate 混淆了?

【讨论】:

你完全正确。总是犯愚蠢的错误。谢谢!【参考方案2】:

对于 textField 这样的 textView 没有类似 textViewShouldReturn() 的方法,您可以使用以下代码返回您的键盘-

extension ViewController: UITextViewDelegate 
    func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool 
        if(text == "\n") 
            textView.resignFirstResponder()
            return true
        
        return true
    

// 确保在 viewDidLoad 方法中拥有自己的 textView 委托

【讨论】:

【参考方案3】:

UITextViewDelegates 中没有函数textViewShouldReturn,此函数属于 UITextField 委托,因此您必须在单击返回时创建自己的隐藏键盘代码。默认情况下,UITextView 中的返回按钮用于下一行。

【讨论】:

【参考方案4】:

如果你想隐藏键盘。试试这个

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text;

    if ( [ text isEqualToString: @"\n" ] ) 
        [ textView resignFirstResponder ];
        return NO;
    
    return YES;

【讨论】:

以上是关于Xcode 9 TextViewShouldReturn [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

使用 xcode 10 后 Xcode 9 找不到资产

Xcode 服务器 - Xcode 9 - 使用旧的配置文件

在安装 Xcode 10 GM 之前卸载 Xcode 9.4.1?

Xcode 9安装

Xcode 9 - iOS 8 图像变得奇怪扭曲

Xcode 9 和 Xcode 服务器:用户未登录