以下兩法方法都是實現textfield和textView的代理方法 需要先遵循代理
一:textField限制只能輸入數字和小數點 且小數點後只能保留兩位 小數點前最多5位
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { // 輸入框中的值 只能輸入到小數點後兩位 if (string.length == 0) { return YES; } const char * ch=[string cStringUsingEncoding:NSUTF8StringEncoding]; if(*ch == 0) return YES; if( *ch != 46 && ( *ch<48 || *ch>57) ) return NO; if([textField.text rangeOfString:@"."].length==1) { NSUInteger length=[textField.text rangeOfString:@"."].location; if([[textField.text substringFromIndex:length] length]>2 || *ch ==46) return NO; }else{ NSInteger existedLength = textField.text.length; NSInteger selectedLength = range.length; NSInteger replaceLength = string.length; if (existedLength - selectedLength + replaceLength > 5&&![string isEqualToString: @"."]) { return NO; } } return YES; }
二:textView限制輸入字數,這裡限制為25字以內
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { if ([text isEqualToString:@""] && range.length > 0) { return YES; }else { if (textView.text.length - range.length + text.length > 25) { return NO; }else { return YES; } } }