// // TFTextFieldAlertView.m // TFReader // // Created by 谢腾飞 on 2020/12/17. // Copyright © 2020 xtfei_2011@126.com. All rights reserved. // #import "TFTextFieldAlertView.h" #import "TFKeyboardManager.h" @interface TFTextFieldAlertView () @property (nonatomic ,strong) UITextField *textField; @property (nonatomic ,strong) TFKeyboardManager *keyboardManager; @end @implementation TFTextFieldAlertView - (void)createSubviews { [super createSubviews]; self.textField = [[UITextField alloc] init]; self.textField.backgroundColor = [UIColor clearColor]; self.textField.font = kMainFont; self.textField.textColor = [UIColor blackColor]; self.textField.textAlignment = NSTextAlignmentLeft; self.textField.clearButtonMode = UITextFieldViewModeWhileEditing; self.textField.layer.borderColor = kColorRGBA(235, 235, 241, 1).CGColor; self.textField.layer.borderWidth = 1; self.textField.layer.cornerRadius = 8; self.textField.leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10, 20)]; self.textField.leftViewMode = UITextFieldViewModeAlways; [self.alertBackView addSubview:self.textField]; [self.confirmButton addTarget:self action:@selector(confirmButtonClick) forControlEvents:UIControlEventTouchUpInside]; WS(weakSelf) self.keyboardManager = [[TFKeyboardManager alloc] initObserverWithAdaptiveMovementView:self.alertBackView]; self.keyboardManager.spacingFromKeyboard = 80; self.keyboardManager.keyboardHeightChanged = ^(CGFloat keyboardHeight, CGFloat shouldMoveDistance, CGRect shouldMoveFrame) { weakSelf.alertBackView.frame = shouldMoveFrame; }; } - (void)showAlertView { [super showAlertView]; [self.textField mas_makeConstraints:^(MASConstraintMaker *make) { make.left.mas_equalTo(self.alertTitleLabel.mas_left); make.right.mas_equalTo(self.alertTitleLabel.mas_right); make.top.mas_equalTo(self.contentScrollView.mas_bottom).with.offset(kHalfMargin); make.height.mas_equalTo(self.alertViewBtnHeight); }]; [self.cancelButton mas_remakeConstraints:^(MASConstraintMaker *make) { make.left.mas_equalTo(self.alertBackView.mas_left).with.offset(0); make.top.mas_equalTo(self.textField.mas_bottom).with.offset(kMargin); make.height.mas_equalTo(self.alertViewBtnHeight); make.width.mas_equalTo(self.alertViewWidth / 2); }]; [self.confirmButton mas_remakeConstraints:^(MASConstraintMaker *make) { make.right.mas_equalTo(self.alertBackView.mas_right).with.offset(0); make.top.mas_equalTo(self.textField.mas_bottom).with.offset(kMargin); make.height.mas_equalTo(self.alertViewBtnHeight); make.width.mas_equalTo(self.alertViewWidth / 2); }]; } - (void)setPlaceHoldTitle:(NSString *)placeHoldTitle { _placeHoldTitle = placeHoldTitle; self.textField.text = placeHoldTitle; } - (void)confirmButtonClick { self.textField.text = [self.textField.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; if (self.textField.text.length == 0) { [TFPromptManager showPromptViewWithStatus:TFPromptStatusError promptTitle:TFLocalizedString(@"昵称不能为空")]; return; } if ([self.placeHoldTitle isEqualToString:self.textField.text]) { [TFPromptManager showPromptViewWithStatus:TFPromptStatusError promptTitle:TFLocalizedString(@"昵称没有变化哦")]; return; } if (self.endEditedBlock) { self.endEditedBlock(self.textField.text); } [self closeAlertView]; } - (void)dealloc { [self.keyboardManager stopKeyboardObserver]; [[NSNotificationCenter defaultCenter] removeObserver:self]; } @end