monzo/bkmoneykit
BKMoneyKit
Screenshots
[Screenshot] [Screenshot]
Classes
| Class | Description | | ----- | ----------- | | ``BKCardNumberField` | Subclass of UITextField that supports formatting card number. You can show card logo image by setting `showsCardLogo` to `YES`. | | `BKCardNumberLabel` | Subclass of UILabel that displays formatted card number and card brand logo. You can mask card number by configuring `cardNumberFormatter`. | | `BKCardNumberFormatter` | Subclass of NSFormatter. This class has card number pattern information inside and formats according to patterns. You can customize masking behavior, masking character and group separater character. | | `BKCardExpiryField` | Subclass of UITextField that supports formatting card number expiry date. | | `BKCurrencyTextField` | Subclass of UITextField that supports formatting money amount. You can change currency by changing the `currencyCode` property of `numberFormatter``. |
Examples
BKCardNumberField
// create (you can also use interface builder)
BKCardNumberField *cardNumberField = [[BKCardNumberField alloc] initWithFrame:CGRectMake(0, 0, 300, 40)];
cardNumberField.showsCardLogo = YES;
[self.view addSubview:cardNumberField];
// get card number
NSString *cardNumber = cardNumberField.cardNumber;
// get card company name
NSString *companyName = cardNumberField.cardCompanyName;BKCardNumberLabel
BKCardNumberLabel *cardNumberLabel = [[BKCardNumberLabel alloc] initWithFrame:CGRectMake(0, 0, 300, 40)];
// set masking character. BLACK CIRCLE (0x25CF)
cardNumberLabel.cardNumberFormatter.maskingCharacter = @"●";
// masking second and third group.
cardNumberLabel.cardNumberFormatter.maskingGroupIndexSet = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(1, 2)];
BKCardExpiryField
BKCardExpiryField *field = [[BKCardExpiryField alloc] init];
// get month
NSInteger month = field.dateComponents.month;
// get year
NSInteger year = field.dateComponents.year;BKCurrencyTextField
BKCurrencyTextField *field = [[BKCurrencyTextField alloc] init];
// change currency
field.numberFormatter.currencyCode = @"KRW";
// get number value
NSDecimalNumber *number = field.numberValue;Custom cards images
Just add to your image assets the card logo with the shortName eg. "visa", "amex", "mastercard" etc..
Package Metadata
Repository: monzo/bkmoneykit
Default branch: master
README: README.md