UITextView和UITextField限制输入字符 和点击return键的操作

UITextView和UITextField限制输入字符


(void)textViewDidChange:(UITextView *)textView{

if (textView.markedTextRange == nil && textView.text.length > 1500) {

//截取

textView.text = [textView.text substringToIndex:1500];

     }

}

- (void)editingChange:(UITextField *)sender {

NSInteger kMaxLength = 30;

NSString *toBeString = sender.text;

NSString *lang = [[UIApplication sharedApplication]textInputMode].primaryLanguage; //ios7之前使用[UITextInputMode currentInputMode].primaryLanguage

if ([lang isEqualToString:@"zh-Hans"]) { //中文输入

    UITextRange *selectedRange = [sender markedTextRange];

   //获取高亮部分

   UITextPosition *position = [sender positionFromPosition:selectedRange.start offset:0];

   if (!position) {// 没有高亮选择的字,则对已输入的文字进行字数统计和限制

     if (toBeString.length > kMaxLength) {

          sender.text = [toBeString substringToIndex:kMaxLength];

        }

   }

else{//有高亮选择的字符串,则暂不对文字进行统计和限制

}

}else{//中文输入法以外的直接对其统计限制即可,不考虑其他语种情况

if (toBeString.length > kMaxLength) {

sender.text = [toBeString substringToIndex:kMaxLength];

       }

  }

}

return键的操作

//点击textView 

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

{

if ([text isEqualToString:@"\n"]) {

[textView resignFirstResponder];

return NO;

}

return YES;

}

#pragma mark -- UITextFieldDelegate

- (BOOL)textFieldShouldReturn:(UITextField *)textField{

if (textField == self.passWordTextField) {

[textField resignFirstResponder];

}

return YES;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容