如何用退货键解除UITextView的键盘?

在IB的库中,介绍告诉我们,当按下返回键时, UITextView的键盘将消失。 但实际上,返回键只能用作' n'。

我可以添加一个按钮并使用[txtView resignFirstResponder]来隐藏键盘。

但有没有办法在键盘上添加返回键的操作,以便我不需要添加UIButton


当用户点击返回键时, UITextView没有任何方法。 如果您希望用户只能添加一行文本,请使用UITextField 。 触摸返回并隐藏UITextView的键盘不符合接口指南。

即使如此,如果您想要这样做,请实现UITextViewDelegate textView:shouldChangeTextInRange:replacementText:方法,并检查替换文本是否为n ,隐藏键盘。

可能还有其他的方法,但我没有意识到。


想象一下,我会在这里发布代码片段:

确保你声明了对UITextViewDelegate协议的支持。

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

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

    return YES;
}

Swift 4.0更新:

func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
    if text == "n" {
        textView.resignFirstResponder()
        return false
    }
    return true
}

我知道这已经被回答了,但我不太喜欢使用字符串文字换行,所以这就是我所做的。

- (BOOL)textView:(UITextView *)txtView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
    if( [text rangeOfCharacterFromSet:[NSCharacterSet newlineCharacterSet]].location == NSNotFound ) {
        return YES;
    }

    [txtView resignFirstResponder];
    return NO;
}

Swift 4.0更新:

func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
if (text as NSString).rangeOfCharacter(from: CharacterSet.newlines).location == NSNotFound {
    return true
}
txtView.resignFirstResponder()
return false
}
链接地址: http://www.djcxy.com/p/19095.html

上一篇: How to dismiss keyboard for UITextView with return key?

下一篇: Is there a documented way to set the iPhone orientation?