tags:

views:

315

answers:

3

In my iphone app i have a text field to accept phone number. I need to display the number in US Phone number format .That is like (000) 000-0000. Typically like iPhone Contact phone number entry. How can i do this . Any idea will be greatly appreciated.

Thanks in advance!!!

A: 

Since the user is entering the phone number manually in the text field, you can use the UITextFieldDelegate Method textField:shouldChangeCharactersInRange:replacementString: to dynamically change the entered phone number by adding '(' before the 1st digit ')' after 3 digits are entered '-' after 6 digits. (or) after the number entry is done, you can change the displayed format like this:

- (BOOL) textFieldShouldReturn:(UITextField *)textField {
     //resign the keypad and check if 10 numeric digits entered...
     NSRange range;
     range.length = 3;
     range.location = 3;

textField.text = [NSString stringWithFormat:@"(%@)%@-%@", [textField.text substringToIndex:3], [textField.text substringWithRange:range], [textField.text substringFromIndex:6];
}
NP Compete
A: 

Ahmed Abdelkader's blog has a good code sample to solve this question.

Adam Eberbach
+1  A: 

For auto-formatting, I used addTarget in combination with my PhoneNumberFormatter that Adam kindly referenced. The implementation is described here.

ahmadabdolkader