BTUIKPostalCodeFormField.m 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #import "BTUIKPostalCodeFormField.h"
  2. #import "BTUIKUtil.h"
  3. #import "BTUIKTextField.h"
  4. #import "BTUIKLocalizedString.h"
  5. #import "BTUIKInputAccessoryToolbar.h"
  6. #import "BTUIKAppearance.h"
  7. @implementation BTUIKPostalCodeFormField
  8. - (instancetype)initWithFrame:(CGRect)frame {
  9. self = [super initWithFrame:frame];
  10. if (self) {
  11. self.textField.accessibilityLabel = BTUIKLocalizedString(POSTAL_CODE_PLACEHOLDER);
  12. self.formLabel.text = BTUIKLocalizedString(POSTAL_CODE_PLACEHOLDER);
  13. self.textField.placeholder = @"12345";
  14. self.textField.keyboardType = [BTUIKAppearance sharedInstance].postalCodeFormFieldKeyboardType;
  15. self.textField.autocorrectionType = UITextAutocorrectionTypeNo;
  16. self.textField.autocapitalizationType = UITextAutocapitalizationTypeNone;
  17. self.textField.returnKeyType = UIReturnKeyDone;
  18. }
  19. return self;
  20. }
  21. - (NSString *)postalCode {
  22. return self.textField.text;
  23. }
  24. - (BOOL)entryComplete {
  25. // Never allow auto-advancing out of postal code field since there is no way to know that the
  26. // input value constitutes a complete postal code.
  27. return NO;
  28. }
  29. - (BOOL)valid {
  30. return self.postalCode.length > 0;
  31. }
  32. - (void)fieldContentDidChange {
  33. [self.delegate formFieldDidChange:self];
  34. [self updateAppearance];
  35. }
  36. - (void)textFieldDidBeginEditing:(UITextField *)textField {
  37. self.displayAsValid = YES;
  38. [super textFieldDidBeginEditing:textField];
  39. }
  40. - (void)textFieldDidEndEditing:(UITextField *)textField {
  41. self.displayAsValid = YES;
  42. [super textFieldDidEndEditing:textField];
  43. }
  44. - (BOOL)textFieldShouldReturn:(UITextField *)textField {
  45. [textField resignFirstResponder];
  46. return YES;
  47. }
  48. @end