Commit 215d3d0fd424269f3a71933eb6e476ebe82b5768

Authored by yanglingyu
1 parent 6a62ef08

解决密码输入框键盘弹出问题

CNLiveScioLive/Pages/Login/View/CNLiveLoginInputView.m
@@ -35,7 +35,8 @@ @@ -35,7 +35,8 @@
35 case CNLiveButtonTypeTextEntry: 35 case CNLiveButtonTypeTextEntry:
36 { 36 {
37 _show.hidden = NO; 37 _show.hidden = NO;
38 - _textField.secureTextEntry = YES; 38 +// _textField.secureTextEntry = YES;
  39 + _textField.keyboardType = UIKeyboardTypeASCIICapable;
39 // [_show setTitle:CustomStr(@"Show") forState:UIControlStateNormal]; 40 // [_show setTitle:CustomStr(@"Show") forState:UIControlStateNormal];
40 // [_show setTitle:CustomStr(@"Hide") forState:UIControlStateSelected]; 41 // [_show setTitle:CustomStr(@"Hide") forState:UIControlStateSelected];
41 [_show setImage:[UIImage imageNamed:@"cnlive_show"] forState:UIControlStateNormal]; 42 [_show setImage:[UIImage imageNamed:@"cnlive_show"] forState:UIControlStateNormal];
@@ -181,7 +182,11 @@ @@ -181,7 +182,11 @@
181 - (void)clickedShowBtn:(UIButton *)sender{ 182 - (void)clickedShowBtn:(UIButton *)sender{
182 //避免明文/密文切换后光标位置偏移 183 //避免明文/密文切换后光标位置偏移
183 self.textField.enabled = NO; // the first one; 184 self.textField.enabled = NO; // the first one;
184 - self.textField.secureTextEntry = sender.selected; 185 + if (sender.selected == YES&&![self.textField.text isEqualToString:@""]) {
  186 + self.textField.secureTextEntry = sender.selected;
  187 + }else if (sender.selected == NO){
  188 + self.textField.secureTextEntry = sender.selected;
  189 + }
185 sender.selected = !sender.selected; 190 sender.selected = !sender.selected;
186 self.textField.enabled = YES; // the second one; 191 self.textField.enabled = YES; // the second one;
187 [self.textField becomeFirstResponder]; // the third one 192 [self.textField becomeFirstResponder]; // the third one
@@ -227,11 +232,20 @@ @@ -227,11 +232,20 @@
227 } 232 }
228 #pragma mark - UITextFieldDelegate 233 #pragma mark - UITextFieldDelegate
229 - (BOOL)textFieldShouldEndEditing:(UITextField *)textField{ 234 - (BOOL)textFieldShouldEndEditing:(UITextField *)textField{
  235 + if ([textField.text isEqualToString:@""]) {
  236 + textField.secureTextEntry = NO;
  237 + }
230 return YES; 238 return YES;
231 239
232 } 240 }
233 -- (void)textFieldDidEndEditing:(UITextField *)textField{  
234 - 241 +-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
  242 +{
  243 + if (_type == CNLiveButtonTypeTextEntry) {
  244 + if (_show.selected == NO) {
  245 + textField.secureTextEntry = YES;
  246 + }
  247 + }
  248 + return YES;
235 } 249 }
236 - (void)dealloc{ 250 - (void)dealloc{
237 [[NSNotificationCenter defaultCenter] removeObserver:self]; 251 [[NSNotificationCenter defaultCenter] removeObserver:self];
CNLiveScioLive/Pages/Register/Controller/CNLiveRegisterPhoneViewController.m
@@ -47,8 +47,12 @@ @@ -47,8 +47,12 @@
47 } 47 }
48 - (void)setUpSubControllers{ 48 - (void)setUpSubControllers{
49 49
50 - _phone = [[CNLiveLoginInputView alloc] initWithPic:@"cnlive_phone" placeholder:CustomStr(@"PleaseFillInYourPhoneNumber") type:CNLiveButtonTypeNormal];  
51 - [self.view addSubview:_phone]; 50 +
  51 + [self.view addSubview:self.phone];
  52 + [self.view addSubview:self.code];
  53 + [self.view addSubview:self.pwd];
  54 + [self.view addSubview:self.agreeButton];
  55 +
52 [_phone mas_makeConstraints:^(MASConstraintMaker *make) { 56 [_phone mas_makeConstraints:^(MASConstraintMaker *make) {
53 make.top.equalTo(self.view.mas_top).with.offset(15); 57 make.top.equalTo(self.view.mas_top).with.offset(15);
54 make.left.equalTo(self.view.mas_left).with.offset(0); 58 make.left.equalTo(self.view.mas_left).with.offset(0);
@@ -56,13 +60,6 @@ @@ -56,13 +60,6 @@
56 make.height.offset(40); 60 make.height.offset(40);
57 61
58 }]; 62 }];
59 -  
60 - _code = [[CNLiveLoginInputView alloc] initWithPic:@"cnlive_phone_message" placeholder:CustomStr(@"PleaseFillInTheVerificationCodeReceivedByMobilePhone") type:CNLiveButtonTypeCode];  
61 - __weak typeof(self) weakSelf = self;  
62 - _code.block = ^{  
63 - [weakSelf getVerification];  
64 - };  
65 - [self.view addSubview:_code];  
66 [_code mas_makeConstraints:^(MASConstraintMaker *make) { 63 [_code mas_makeConstraints:^(MASConstraintMaker *make) {
67 make.top.equalTo(self->_phone.mas_bottom).with.offset(15); 64 make.top.equalTo(self->_phone.mas_bottom).with.offset(15);
68 make.left.equalTo(self.view.mas_left).with.offset(0); 65 make.left.equalTo(self.view.mas_left).with.offset(0);
@@ -70,9 +67,6 @@ @@ -70,9 +67,6 @@
70 make.height.offset(40); 67 make.height.offset(40);
71 68
72 }]; 69 }];
73 -  
74 - _pwd = [[CNLiveLoginInputView alloc] initWithPic:@"cnlive_password" placeholder:CustomStr(@"PleaseEnterA6-16-bitPassword") type:CNLiveButtonTypeTextEntry];  
75 - [self.view addSubview:_pwd];  
76 [_pwd mas_makeConstraints:^(MASConstraintMaker *make) { 70 [_pwd mas_makeConstraints:^(MASConstraintMaker *make) {
77 make.top.equalTo(self->_code.mas_bottom).with.offset(15); 71 make.top.equalTo(self->_code.mas_bottom).with.offset(15);
78 make.left.equalTo(self.view.mas_left).with.offset(0); 72 make.left.equalTo(self.view.mas_left).with.offset(0);
@@ -81,14 +75,6 @@ @@ -81,14 +75,6 @@
81 75
82 }]; 76 }];
83 77
84 -  
85 - _agreeButton = [UIButton buttonWithType:UIButtonTypeCustom];  
86 - _agreeButton.tag = 10000;  
87 - [_agreeButton addTarget:self action:@selector(clicekdButton:) forControlEvents:UIControlEventTouchUpInside];  
88 - [_agreeButton setImage:[UIImage imageNamed:@"cnlive_login_check"] forState:UIControlStateNormal];  
89 - [_agreeButton setImage:[UIImage imageNamed:@"cnlive_login_check out"] forState:UIControlStateSelected];  
90 -  
91 - [self.view addSubview:_agreeButton];  
92 [_agreeButton mas_makeConstraints:^(MASConstraintMaker *make) { 78 [_agreeButton mas_makeConstraints:^(MASConstraintMaker *make) {
93 79
94 make.top.equalTo(self->_pwd.mas_bottom).with.offset(15); 80 make.top.equalTo(self->_pwd.mas_bottom).with.offset(15);
@@ -290,7 +276,48 @@ @@ -290,7 +276,48 @@
290 276
291 } 277 }
292 - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ 278 - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
293 - [self allResignFirstResponder]; 279 + [self.view endEditing:YES];
  280 +
  281 +}
  282 +
  283 +#pragma mark - GETTING
  284 +- (CNLiveLoginInputView *)phone
  285 +{
  286 + if (!_phone) {
  287 + _phone = [[CNLiveLoginInputView alloc] initWithPic:@"cnlive_phone" placeholder:CustomStr(@"PleaseFillInYourPhoneNumber") type:CNLiveButtonTypeNormal];
  288 + }
  289 + return _phone;
  290 +}
  291 +
  292 +- (CNLiveLoginInputView *)code
  293 +{
  294 + if (!_code) {
  295 + _code = [[CNLiveLoginInputView alloc] initWithPic:@"cnlive_phone_message" placeholder:CustomStr(@"PleaseFillInTheVerificationCodeReceivedByMobilePhone") type:CNLiveButtonTypeCode];
  296 + __weak typeof(self) weakSelf = self;
  297 + _code.block = ^{
  298 + [weakSelf getVerification];
  299 + };
  300 + }
  301 + return _code;
  302 +}
294 303
  304 +- (CNLiveLoginInputView *)pwd
  305 +{
  306 + if (!_pwd) {
  307 + _pwd = [[CNLiveLoginInputView alloc] initWithPic:@"cnlive_password" placeholder:CustomStr(@"PleaseEnterA6-16-bitPassword") type:CNLiveButtonTypeTextEntry];
  308 + }
  309 + return _pwd;
  310 +}
  311 +
  312 +-(UIButton *)agreeButton
  313 +{
  314 + if (!_agreeButton) {
  315 + _agreeButton = [UIButton buttonWithType:UIButtonTypeCustom];
  316 + _agreeButton.tag = 10000;
  317 + [_agreeButton addTarget:self action:@selector(clicekdButton:) forControlEvents:UIControlEventTouchUpInside];
  318 + [_agreeButton setImage:[UIImage imageNamed:@"cnlive_login_check"] forState:UIControlStateNormal];
  319 + [_agreeButton setImage:[UIImage imageNamed:@"cnlive_login_check out"] forState:UIControlStateSelected];
  320 + }
  321 + return _agreeButton;
295 } 322 }
296 @end 323 @end