输入限制(输入字数)

在使用输入框时,不管是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;

}



你可能感兴趣的:(iOS,开发编码收集)