一. 占位符顏色字體修改
_textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"*****" attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:16],NSForegroundColorAttributeName:[UIColor redColor]}];
只需要在初始化的時(shí)候設(shè)置attributedPlaceholder即富文本的占位文本
二. 限制字符長度
1. [self.nameTextField addTarget:self action:@selector(textFieldDidChanged:) forControlEvents:UIControlEventEditingChanged];
- (void)textFieldDidChanged:(UITextField*)textField {
? ? // 判斷是否存在高亮字符,如果有案铺,則不進(jìn)行字?jǐn)?shù)統(tǒng)計(jì)和字符串截?cái)?/p>
? ? UITextRange*selectedRange = textField.markedTextRange;
? ? UITextPosition*position = [textFieldpositionFromPosition:selectedRange.startoffset:0];
? ? if(position) {
? ? ? ? return;
? ? }
? ? // 判斷是否超過最大字?jǐn)?shù)限制陨界,如果超過就截?cái)?/p>
? ? if(textField.text.length>16) {
? ? ? ? textField.text= [textField.textsubstringToIndex:16];
? ? }
}
2.- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
?? ?if (textField == self.nameTextField) {
? ? //這里的if時(shí)候?yàn)榱双@取刪除操作,如果沒有次if會造成當(dāng)達(dá)到字?jǐn)?shù)限制后刪除鍵也不能使用的后果.
? ? ? ? if (range.length == 1 && string.length == 0) {
?? ? ? ? ? ?return YES;
? ? ? ? }else if (self.nameTextField.length >= 16) {
? ? ? ? ? ?self.nameTextField.text = [textField.text substringToIndex:16];
? ? ? ? ? ? return NO;
? ? ? ? }
? ? }
? ? return YES;
}
三嚼蚀,輸入框只允許輸入數(shù)字,字母和中文煞赢,其它的符號標(biāo)點(diǎn)等不允許輸入
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
? ? if(textField ==self.nameTextField){
? ? ? ? if([self isInputRuleAndNumber:string] || [string isEqualToString:@""]) {
? ? ? ? ? ? //當(dāng)輸入符合規(guī)則和退格鍵時(shí)允許改變輸入框
? ? ? ? ? ? returnYES;
? ? ? ? }else{
? ? ? ? ? ? returnNO;
? ? ? ? }
? ? }else{
? ? ? ? returnYES;
? ? }
}
/**
?* 字母、數(shù)字、中文正則判斷
?*/
- (BOOL)isInputRuleAndNumber:(NSString *)str {
? ? NSString*other =@"????????";? ? //九宮格的輸入值
? ? if ([other rangeOfString:str].location != NSNotFound) {
? ? ? ? returnYES;
? ? }
? ? NSString *pattern = @"[a-zA-Z\u4E00-\u9FA5\\u0030-\\u0039]+";
? ? NSPredicate*pred = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", pattern];
? ? BOOLisMatch = [predevaluateWithObject:str];
? ? returnisMatch;
}
四拐迁,只能輸入字母,數(shù)字,禁止輸入特殊符號
#define ALPHANUM @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
??NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:ALPHANUM] invertedSet];
??NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
??return [string isEqualToString:filtered];
}