パスワードボックスtextfieldは入力文字と数字を制限します
1462 ワード
検索したところ、ネット上のほとんどのやり方が間違っていることが分かった.次はメモを取って、自分のノートを自分の目標は1週間ぐらい文章を書くことです.やはり一部の人に役立つような気がします.正常な考え方は代理方法を実現することです.
しかし、漢字を入力して連想語をクリックすると、この方法は実行されないことが分かったので、
addTarget:この傍受TFを使用する.しばらく問題に気づかなかったが次は正解だ
終わった、暇があればソースを見てゆっくり自分を向上させなければなりません.
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {}
しかし、漢字を入力して連想語をクリックすると、この方法は実行されないことが分かったので、
addTarget:この傍受TFを使用する.しばらく問題に気づかなかったが次は正解だ
[self.tfPassword addTarget:self action:@selector(passwordTFDidChange:) forControlEvents:UIControlEventEditingChanged];//xianzhi lzc
- (void)passwordTFDidChange:(UITextField *)textField
{
NSString *inputStr = textField.text;
if (inputStr.length == 0) return;
if (inputStr.length>12) {// 12
textField.text = [inputStr substringToIndex:12];
}
NSMutableString *str = [NSMutableString stringWithString:textField.text];
for (NSInteger i = str.length-1; i>-1; i--) {
NSInteger c = [str characterAtIndex:i];
BOOL result = [self filter:c ];
if (!result) {
[str replaceCharactersInRange:NSMakeRange(i, 1) withString:@""];
}
}
textField.text = str;
}
- (BOOL)filter:(NSInteger)c// ,
{
if (c>='0' && c<= '9') {
return YES;
}
if (((c>='a' && c<='z') || (c>='A' && c<='Z'))) {
return YES;
}
return NO;
}
終わった、暇があればソースを見てゆっくり自分を向上させなければなりません.