You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

107 lines
3.7 KiB

//
// 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