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