目标C
的UITextField shouldChangeCharactersInRange方法我有一些文本字段和当我写11111111111于第一文本框(TCKimlikText)我设置一些字符串到另一文本框。首先,文本字段的(TCKimlikText)最大长度必须为11个字符。我尝试下面的代码。但我有一个问题。我无法删除我写入TCKimlikText文本框的内容。目标C
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
if (TCKimlikText.text.length <11) {
if ([[TCKimlikText.text stringByReplacingCharactersInRange:range withString:string] isEqual:@"11111111111"])
{
AdinizText.text = @"MEHMET";
uyrukBtn.titleLabel.text = @"TC";
BabaAdiText.text = @"HASAN";
AnneAdiText.text = @"MELEK";
SoyadinizText.text = @"AYDIN";
AnneKizlikSoyadiText.text = @"OKUR";
DogumTarihiText.text = @"01/01/1960";
medeniDurumBtn.titleLabel.text = @"EVLİ";
EsinizinAdiText.text = @"AYŞE";
dogumYeriBtn.titleLabel.text = @"BURSA";
kimlikTuruBtn.titleLabel.text = @"Nüfus Cüzdanı";
KimlikVerilisNedeniText.text = @"YENİLEME";
KimlikVerilisTarihi.text = @"12/01/2010";
KimlikSeriNoText.text = @"16345";
VergiKimlikNoText.text = @"45678";
EvTelText.text = @"5443126274";
}
return YES;
}
else return NO;
}
我该如何解决这个问题?
最好的办法是以下几点:
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
NSString *resultStr = [TCKimlikText.text stringByReplacingCharactersInRange:range withString:string];
if (resultStr.length < 12)
{
if ([resultStr isEqual:@"11111111111"])
{
NSLog(@"In");
AdinizText.text = @"MEHMET";
uyrukBtn.titleLabel.text = @"TC";
BabaAdiText.text = @"HASAN";
AnneAdiText.text = @"MELEK";
SoyadinizText.text = @"AYDIN";
AnneKizlikSoyadiText.text = @"OKUR";
DogumTarihiText.text = @"01/01/1960";
medeniDurumBtn.titleLabel.text = @"EVLİ";
EsinizinAdiText.text = @"AYŞE";
dogumYeriBtn.titleLabel.text = @"BURSA";
kimlikTuruBtn.titleLabel.text = @"Nüfus Cüzdanı";
KimlikVerilisNedeniText.text = @"YENİLEME";
KimlikVerilisTarihi.text = @"12/01/2010";
KimlikSeriNoText.text = @"16345";
VergiKimlikNoText.text = @"45678";
EvTelText.text = @"5443126274";
}
return YES;
}
else return NO;
}
这也将帮助您在有人将文本粘贴到您的文本字段。
感谢您的回复,它的工作原理。当我将11111111111写入第一个文本字段时,文本字段的文本会出现(最多11个字符)并且我可以删除。但是,如果我删除文本,其他文本字段不会更改。我的意思是我写111111111111,没关系。但如果我删除这个比我写的东西而不是11111111111 textfields不是空的。我怎样才能做到这一点? – 2012-01-27 11:32:51
您可以检测使用
if ([string length] > 0)
如果那是你的意思是不是,如果你的意思是你可以在其他文本字段更改,就可以使shouldChangeCharactersInRange仅在某些领域的工作使用
删除/退格if (textField == self.myField)
Use this code u achive your target
这里您texfiled不允许进入更多的则15个字所以这是validation./ ..
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if (textField == txtFirstName)
{
NSUInteger newLength = [txtFirstName.text length] + [string length] - range.length;
return (newLength > 15) ? NO : YES;
}
}
请helpp我..的[shouldChangeCharactersInRange方法不是在目标C工作] – 2012-01-27 09:24:23
可能重复(http://stackoverflow.com/questions/9019086/shouldchangecharactersinrange-method-not-work-in-objective-c) – 2012-01-27 09:58:24
“我无法删除”是什么意思?这是你想要的:'TCKimlikText.text = nil;'? – vakio 2012-01-27 10:10:54