UITextField的限制
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
UITextRange *selectedRange = [textField markedTextRange];
UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];
if (position) {
return YES;
}
if (self.maxCount && string.length > range.length &&
(textField.text.length - range.length + [string length]) > self.maxCount) {
return NO;
}
return YES;
}
- (void)textFieldDidChange {
UITextRange *selectedRange = self.textField.markedTextRange;
UITextPosition *position = [self.textField positionFromPosition:selectedRange.start offset:0];
if (!position && self.textField.text.length >= self.maxCount) {
self.textField.text = [self.textField.text substringToIndex:self.maxCount];
}
}
UITextView的限制
- (void)textViewDidChange:(UITextView *)textView
{
UITextRange *selectedRange = [textView markedTextRange];
UITextPosition *pos = [textView positionFromPosition:selectedRange.start offset:0];
if (selectedRange && pos) {
return;
}
}