为了账号安全,请及时绑定邮箱和手机立即绑定

如何用返回键关闭UITextView的键盘?

如何用返回键关闭UITextView的键盘?

iOS
德玛西亚99 2019-07-22 14:50:51
如何用返回键关闭UITextView的键盘?在IB的图书馆里,介绍告诉我们当回归按下键,键盘为UITextView就会消失。但实际上回归键只能充当‘\n’。我可以添加一个按钮[txtView resignFirstResponder]隐藏键盘。但是,是否有一种方法可以将操作添加到回归键盘上的键,这样我就不需要添加UIButton?
查看完整描述

3 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

UITextView没有在用户按下返回键时调用的任何方法。如果希望用户只能添加一行文本,请使用UITextField..点击返回并隐藏键盘UITextView不遵循接口准则。

即使这样,如果您想要这样做,也要实现textView:shouldChangeTextInRange:replacementText:方法UITextViewDelegate在该检查中,替换文本是否为\n把键盘藏起来。

也许还有其他的方法,但我不知道。


查看完整回答
反对 回复 2019-07-22
?
侃侃无极

TA贡献2051条经验 获得超10个赞

我想我应该把片段放在这里:

确保声明了对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}


查看完整回答
反对 回复 2019-07-22
?
FFIVE

TA贡献1797条经验 获得超6个赞

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

- (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}


查看完整回答
反对 回复 2019-07-22
  • 3 回答
  • 0 关注
  • 341 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信