123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- //
- // FirstSettingBodyView.m
- // KulexiuForTeacher
- //
- // Created by Kyle on 2022/3/20.
- //
- #import "FirstSettingBodyView.h"
- @interface FirstSettingBodyView ()<UITextFieldDelegate>
- @property (weak, nonatomic) IBOutlet UITextField *nameField;
- @property (weak, nonatomic) IBOutlet UITextField *firstField;
- @property (weak, nonatomic) IBOutlet UITextField *secondField;
- @property (nonatomic, copy) SettingEndCallback callback;
- @property (nonatomic, copy) SexChooseCallback chooseSexBlock;
- @end
- @implementation FirstSettingBodyView
- - (void)awakeFromNib {
- [super awakeFromNib];
- self.firstField.delegate = self;
- self.secondField.delegate = self;
- self.nameField.delegate = self;
- if (@available(iOS 10.0, *)) {
- self.nameField.textContentType = UITextContentTypeName;
- self.firstField.textContentType = UITextContentTypeName;
- self.secondField.textContentType = UITextContentTypeName;
- }
- if (@available(iOS 12.0, *)) {
- self.nameField.textContentType = UITextContentTypeOneTimeCode;
- self.firstField.textContentType = UITextContentTypeOneTimeCode;
- self.secondField.textContentType = UITextContentTypeOneTimeCode;
- }
- [self.nameField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
- }
- + (instancetype)shareInstance {
- FirstSettingBodyView *view = [[[NSBundle mainBundle] loadNibNamed:@"FirstSettingBodyView" owner:nil options:nil] firstObject];
- return view;
- }
- - (void)sureCallback:(SettingEndCallback)callback {
- if (callback) {
- self.callback = callback;
- }
- }
- - (void)chooseSexCallback:(SexChooseCallback)callback {
- if (callback) {
- self.chooseSexBlock = callback;
- }
- }
- - (IBAction)chooseSex:(id)sender {
- if (self.chooseSexBlock) {
- self.chooseSexBlock();
- }
- }
- - (IBAction)sureAction:(id)sender {
- [self endEditing:YES];
- if ([NSString isEmptyString:self.nameField.text]) {
- [self MBPShow:@"请输入您的昵称"];
- return;
- }
- if ([NSString isEmptyString:self.firstField.text]) {
- [self MBPShow:@"请设置登录密码"];
- return;
- }
- if (self.firstField.text.length < 6 || self.firstField.text.length > 20) {
- [self MBPShow:@"密码为6-20位数字/字母"];
- return;
- }
- if (![self.firstField.text isEqualToString:self.secondField.text]) {
- [self MBPShow:@"两次输入密码不一致"];
- return;
- }
- if (self.callback) {
- self.callback(self.firstField.text,self.nameField.text);
- }
- }
- - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
- if ([string isEqualToString:@" "]) {
- return NO;
- }
- if ([string isEqualToString:@"\n"]) {
- [self endEditing:YES];
- return YES;
- }
- return YES;
- }
- - (void)textFieldDidChange:(UITextField *)textField {
- NSInteger maxLength = 12;
- NSString *text = textField.text;
- NSString *lang = [[UIApplication sharedApplication]textInputMode].primaryLanguage;
- if ([lang isEqualToString:@"zh-Hans"]) { //中文输入
- UITextRange *selectedRange = [textField markedTextRange];
- //获取高亮部分
- UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];
- if (!position) {// 没有高亮选择的字,则对已输入的文字进行字数统计和限制
- if (text.length > maxLength) {
- textField.text = [text substringToIndex:maxLength];
- }
- }
- else{//有高亮选择的字符串,则暂不对文字进行统计和限制
- }
- }else{//中文输入法以外的直接对其统计限制即可,不考虑其他语种情况
- if (text.length > maxLength) {
- textField.text = [text substringToIndex:maxLength];
- }
- }
- }
- + (CGFloat)getViewHeight {
- return 690.0f;
- }
- /*
- // Only override drawRect: if you perform custom drawing.
- // An empty implementation adversely affects performance during animation.
- - (void)drawRect:(CGRect)rect {
- // Drawing code
- }
- */
- @end
|