From d742ef9b6a07a64ab34f1efc8c1b7d7f13ebfcc7 Mon Sep 17 00:00:00 2001 From: "Pfeil, Scott Robert" Date: Thu, 27 Jun 2019 13:24:32 -0400 Subject: [PATCH] Digit text box molecule --- MVMCoreUI/Atoms/TextFields/MFDigitTextField.h | 2 - MVMCoreUI/Atoms/TextFields/MFDigitTextField.m | 58 ++++++++++++------- .../Atoms/TextFields/MFDigitTextField.xib | 13 ++--- MVMCoreUI/Atoms/TextFields/MFTextField.m | 14 +++-- MVMCoreUI/Atoms/Views/ViewConstrainingView.h | 28 ++++----- .../MVMCoreUIMoleculeMappingObject.m | 1 + 6 files changed, 65 insertions(+), 51 deletions(-) diff --git a/MVMCoreUI/Atoms/TextFields/MFDigitTextField.h b/MVMCoreUI/Atoms/TextFields/MFDigitTextField.h index 4be970da..377418db 100644 --- a/MVMCoreUI/Atoms/TextFields/MFDigitTextField.h +++ b/MVMCoreUI/Atoms/TextFields/MFDigitTextField.h @@ -15,8 +15,6 @@ + (nullable instancetype)mfDigitTextFieldWithNumberOfDigits:(NSUInteger)numberOfDigits withBothDelegates:(nullable id)delegate; + (nullable instancetype)mfDigitTextFieldWithNumberOfDigits:(NSUInteger)numberOfDigits withBothDelegates:(nullable id)delegate size:(CGFloat)size; -- (void)setMessage:(nullable NSString *)message; - - (void)setAsSecureTextEntry:(BOOL)secureTextEntry; @property (nullable, nonatomic, strong) NSArray *textFields; diff --git a/MVMCoreUI/Atoms/TextFields/MFDigitTextField.m b/MVMCoreUI/Atoms/TextFields/MFDigitTextField.m index 084ba338..5f76e88b 100644 --- a/MVMCoreUI/Atoms/TextFields/MFDigitTextField.m +++ b/MVMCoreUI/Atoms/TextFields/MFDigitTextField.m @@ -18,33 +18,24 @@ #import "MVMCoreUISplitViewController.h" #import "MVMCoreUIUtility.h" #import "MVMCoreUIConstants.h" +#import @import MVMCore.MVMCoreDispatchUtility; @interface MFDigitTextField () @property (nonatomic) NSUInteger numberOfDigits; -@property (nullable, nonatomic, weak) IBOutlet UILabel *messageLabel; @property (nullable, nonatomic, weak) IBOutlet UIView *textFieldsView; @property (nullable, nonatomic, weak) IBOutlet NSLayoutConstraint *messageToTextFieldPin; @property (nullable, nonatomic, weak) IBOutlet NSLayoutConstraint *labelToTextFieldPin; - @property (nonatomic) BOOL switchedAutomatically; @end @implementation MFDigitTextField -+ (nullable instancetype)mfTextField { - MFDigitTextField *view = [super mfTextField]; - [MFStyler styleLabelB2:view.messageLabel]; - [view setMessage:@""]; - return view; -} - - (MFDigitTextBox *)digitField { - MFDigitTextBox *textField = [[MFDigitTextBox alloc] init]; textField.delegate = self; textField.mfTextBoxDelegate = self; @@ -128,8 +119,9 @@ } - (void)updateView:(CGFloat)size { + [super updateView:size]; [MVMCoreDispatchUtility performBlockOnMainThread:^{ - [MFStyler styleLabelB2:self.messageLabel]; + [self.formLabel updateView:size]; // Remove all current UI. if (self.textFields.count > 0) { @@ -146,6 +138,29 @@ }]; } +- (void)setupView { + [super setupView]; + [self.formLabel styleB2:YES]; + [self setFormText:@""]; + [self alignCenterHorizontal]; +} + +#pragma mark - Molecule + +- (void)setWithJSON:(NSDictionary *)json delegateObject:(MVMCoreUIDelegateObject *)delegateObject additionalData:(NSDictionary *)additionalData { + NSNumber *digitsNumber = [json optionalNumberForKey:@"digits"]; + NSUInteger digits = digitsNumber ? digitsNumber.integerValue : 4; + if (digits != self.numberOfDigits) { + self.numberOfDigits = digits; + [self buildTextFieldsViewForSize:[MVMCoreUIUtility getWidth]]; + } + [super setWithJSON:json delegateObject:delegateObject additionalData:additionalData]; +} + ++ (CGFloat)estimatedHeightForRow:(NSDictionary *)json delegateObject:(MVMCoreUIDelegateObject *)delegateObject { + return 44; +} + #pragma mark - Getters - (NSString *)placeholder { @@ -172,15 +187,13 @@ #pragma mark - Setters -- (void)setMessage:(nullable NSString *)message { - [MVMCoreDispatchUtility performBlockOnMainThread:^{ - if (message.length > 0) { - self.messageToTextFieldPin.constant = 10; - } else { - self.messageToTextFieldPin.constant = 0; - } - self.messageLabel.text = message; - }]; +- (void)setFormText:(NSString *)formText { + if (formText.length > 0) { + self.messageToTextFieldPin.constant = 10; + } else { + self.messageToTextFieldPin.constant = 0; + } + [super setFormText:formText]; } - (void)setAsSecureTextEntry:(BOOL)secureTextEntry { @@ -284,6 +297,11 @@ - (void)enable:(BOOL)enable { [super enable:enable]; + if (enable) { + [self.formLabel styleB2:YES]; + } else { + self.formLabel.textColor = [UIColor mfBattleshipGrey]; + } for (UITextField *textField in self.textFields) { textField.userInteractionEnabled = enable; textField.enabled = enable; diff --git a/MVMCoreUI/Atoms/TextFields/MFDigitTextField.xib b/MVMCoreUI/Atoms/TextFields/MFDigitTextField.xib index 1792b9f8..37e6609b 100644 --- a/MVMCoreUI/Atoms/TextFields/MFDigitTextField.xib +++ b/MVMCoreUI/Atoms/TextFields/MFDigitTextField.xib @@ -1,24 +1,19 @@ - + - + - - - NHaasGroteskDSStd-65Md - - + - @@ -28,7 +23,7 @@ -