• Stars
    star
    107
  • Rank 323,587 (Top 7 %)
  • Language
    Objective-C
  • License
    MIT License
  • Created about 11 years ago
  • Updated about 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Formatter for numerical fields and UITextField category to use it easily while editing.

AKNumericFormatter

Formatter for numerical fields and UITextField category to use it easily while editing.

Usage

You can look at AKNumericFormatterSample project to see AKNumericFormatter in action.

Formatter usage:

NSString* numericInput = @"12345678901";
NSString* formattedInput = [AKNumericFormatter formatString:numericInput
                                                  usingMask:@"+*(***)***-**-**"
                                       placeholderCharacter:'*'];

Of course you will get @"+1(234)567-89-01"

To format UITextField's input on-the-fly while the text is being entered:

// Somewhere, let's say in viewDidLoad
self.textField.numericFormatter = [AKNumericFormatter formatterWithMask:@"+*(***)***-**-**"
                                                   placeholderCharacter:'*'];

Yep, it's easy and no subclassing.

###iOS 5 Compatibility

It's working on iOS 5, but you should help it a little bit. Call alertDeleteBackwards method in your UITextField delegate's shouldChangeCharactersInRange:replacementString: method when replacementString parameter has zero length:

#pragma mark - UITextFieldDelegate

-(BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString*)string
{
  if (string.length == 0 ) {
    [self.textField alertDeleteBackwards];
  }
  return [super textField:textField shouldChangeCharactersInRange:range replacementString:string];
}

Installation

The best approach is to use CocoaPods.

Install CocoaPods gem if it's not installed yet and setup its enviroment:

$ [sudo] gem install cocoapods
$ pod setup

Go to the directory containing your project's .xcodeproj file and create Podfile:

$ cd ~/Projects/MyProject
$ vim Podfile

Add the following lines to Podfile:

platform :ios
pod 'AKNumericFormatter'

Finally install your pod dependencies:

$ [sudo] pod install

That's all, now open just created .xcworkspace file

Contact

Aleksey Kozhevnikov