UITextField和UITextView字數限制
UITextField字數限制
[self.textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
- (void)textFieldDidChange:(UITextField *)textField
{
CGFloat maxLength = 10 ;
NSString *toBeString = textField.text;
//獲取高亮部分
UITextRange *selectedRange = [textField markedTextRange];
UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];
if (!position || !selectedRange)
{
if (toBeString.length > maxLength)
{
NSRange rangeIndex = [toBeString rangeOfComposedCharacterSequenceAtIndex:maxLength];
if (rangeIndex.length == 1)
{
textField.text = [toBeString substringToIndex:maxLength];
}
else
{
NSRange rangeRange = [toBeString rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, maxLength)];
textField.text = [toBeString substringWithRange:rangeRange];
}
}
}
}
UITextView字數限制
#define MAXSTRINGLENGTH 100 //限定輸入長度
//textView代理方法
- (void)textViewDidChange:(UITextView *)textView
{
NSString *lang = [[[UITextInputMode activeInputModes] firstObject] primaryLanguage];//當前的輸入模式
if ([lang isEqualToString:@"zh-Hans"])
{
UITextRange *range = [textView markedTextRange];
UITextPosition *start = range.start;
UITextPosition*end = range.end;
NSInteger selectLength = [textView offsetFromPosition:start toPosition:end];
NSInteger contentLength = textView.text.length - selectLength;
if (contentLength > MAXSTRINGLENGTH)
{
textView.text = [textView.text substringToIndex:MAXSTRINGLENGTH];
[[[UIAlertView alloc] initWithTitle:@"提示" message:@"最長限制100個字" delegate:nil cancelButtonTitle:@"確定" otherButtonTitles: nil] show];
}
}
else
{
if (textView.text.length > MAXSTRINGLENGTH)
{
textView.text = [textView.text substringToIndex:MAXSTRINGLENGTH];
[[[UIAlertView alloc] initWithTitle:@"提示" message:@"最長限制100個字" delegate:nil cancelButtonTitle:@"確定" otherButtonTitles: nil] show];
}
}
}