//限制字符串的长度
//实现协议方法
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (textField == nickname) {
if (string.length == 0) return YES;
else if(string.length>6)return NO;
NSInteger existedLength = nickname.text.length;
NSInteger selectedLength = range.length;
NSInteger replaceLength = string.length;
if (existedLength - selectedLength + replaceLength > 6) {
return NO;
}
}
return YES;
}
//限制中文输入法的长度
1.[_textField addTarget:self action:@selector(textFieldChange) forControlEvents:UIControlEventEditingChanged];
2.
//限定主题字数 10个
- (void)textFieldChange{
NSString *toBeString = self.textField.text;
NSString *lang = [[UITextInputMode currentInputMode] primaryLanguage];
if([lang isEqualToString:@"zh-Hans"]){ //简体中文输入,包括简体拼音,健体五笔,简体手写
UITextRange *selectedRange = [self.textField markedTextRange];
UITextPosition *position = [self.textField positionFromPosition:selectedRange.start offset:0];
if (!position){//非高亮
if (toBeString.length > kMaxLength) {
[self.view makeToast:@"您最多可以输入10个字" duration:1 position:@"top"];
self.textField.text = [toBeString substringToIndex:kMaxLength];
}
}
}else{//中文输入法以外
if (toBeString.length > kMaxLength) {
[self.view makeToast:@"您最多可以输入10个字" duration:1 position:@"top"];
self.textField.text = [toBeString substringToIndex:kMaxLength];
}
}
}
原帖:http://my.oschina.net/751547752/blog/372130
//限制不能输入空格
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
if (range.location >= 10)
return NO;
NSCharacterSet *nonNumberSet = [[NSCharacterSet characterSetWithCharactersInString:@" "] invertedSet];
return (![string stringByTrimmingCharactersInSet:nonNumberSet].length > 0);
}