输入限制(输入字数)

在使用输入框时,不管是searchBar输入,还是textField输入,又或是textView输入,都会涉及到字数的输入限制。在处理输入时的限制时,还要考虑到复制粘贴时的字数限制,避免只在输入时做了限制,而采取复制粘贴时没有进行限制。

searchBar限制

// 搜索词输入限制在32

- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text

{

    NSString *searchString = [searchBar.text stringByReplacingCharactersInRange:range withString:text];

    if (searchString.length > 32)

    {

        // 避免复制粘贴时限制

        searchBar.text = [searchString substringToIndex:32];

        return NO;

    }


    return YES;

}


// textView输入限制

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

{

    // 字数限制

    NSString *tempString = [textView.text stringByReplacingCharactersInRange:range withString:text];

    if (tempString.length > 12)

    {

        textView.text = [textView.text substringToIndex:12]; // 避免复制粘贴时超过限制

        return NO;

    }

    

    return YES;

}


// textField输入限制

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

{

    // 字数限制

    NSString *tempString = [textField.text stringByReplacingCharactersInRange:range withString:string];

    if (tempString.length > 12)

    {

        textView.text = [textField.text substringToIndex:12]; // 避免复制粘贴时超过限制

        return NO;

    }

    

    return YES;

}


除了通过字符长度控制外,还可以通过range的location进行控制,如:

// textField输入限制

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

{

    if (range.location > 12 - 1)

    {

currentTextView.text = [tempStr substringToIndex:12]; //避免复制粘贴时超过限制

  return NO;

    }

    

    return YES;

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番薯大佬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值