Friday, 20 March 2015

First letter alphabet only and string is alphabet and numeric with limit in UITextField.

#define ALPHA @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz "
#define NUMERIC @"1234567890"

#define ALPHA_NUMERIC ALPHA NUMERIC
#define MAX_LENGTH 25


- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string  {

     
     NSCharacterSet *myCharSet = [[NSCharacterSet characterSetWithCharactersInString:@"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"] invertedSet];
     
     NSString* newStr = [itemname.text stringByTrimmingCharactersInSet:myCharSet];

     if ([newStr length] < 1)
     {
         unichar c =  [string characterAtIndex:0];;
         if ([myCharSet characterIsMember:c]) {
             return NO;
         }
     }else{
     
     NSUInteger newLength = [itemname.text length] + [string length] - range.length;
     
     NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:ALPHA_NUMERIC] invertedSet];
     
     NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
     
     while (newLength < MAX_LENGTH) {
         return [string isEqualToString:filtered];
     }
     return (newLength > MAX_LENGTH) ? NO : YES;
     }

    return YES;
    
}

No comments:

Post a Comment