Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,18 @@ pod 'TSCurrencyTextField', '~> 0.1.0'

An example project is included in the Example directory. This should give you an idea how to use the class.

###textFieldPublicDelegate
Property was added to be able to call delegate method `- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;` if delegate exists to eventually decide if change should be made. Method is called with `string` parameter pointing to exactly the same string that will be put in text field right after method is called.
It allows to block text field editing e.g. if maximum length is reached:

```
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
const int maxPriceStringLength = 10; // '$' + 7 digits + 2 commas, e.g. $1,123,456
return (string && string.length < maxPriceStringLength);
}
```

##Donate

Please consider a small donation if you use TSCurrencyTextField in your projects. It'll make me feel good.
Expand Down
2 changes: 2 additions & 0 deletions TSCurrencyTextField/TSCurrencyTextField.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,6 @@

@property (nonatomic) NSNumber* amount;

@property (nonatomic, strong) id<UITextFieldDelegate> textFieldPublicDelegate;

@end
9 changes: 8 additions & 1 deletion TSCurrencyTextField/TSCurrencyTextField.m
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,14 @@ - (BOOL) textField: (TSCurrencyTextField *) textField shouldChangeCharactersInRa
int distanceFromEnd = textField.text.length - (range.location + range.length);

NSString* changed = [textField.text stringByReplacingCharactersInRange: range withString: string];
[textField setText: changed];

if (textField.textFieldPublicDelegate) {
if ([textField.textFieldPublicDelegate textField:textField shouldChangeCharactersInRange:range replacementString:changed]) {
[textField setText: changed];
}
} else {
[textField setText: changed];
}

int pos = textField.text.length - distanceFromEnd;
if ( pos >= 0 && pos <= textField.text.length )
Expand Down