2012-01-27 13 views
1

私はいくつかのテキストフィールドを持っていると私は最初のテキストフィールド(TCKimlikText)へ11111111111を書くとき、私は、他のテキストフィールドにいくつかの文字列を設定します。また、最初のテキストフィールド(TCKimlikText)の最大文字数は11文字でなければなりません。私はコードの下でこれを試してみます。しかし、私には1つの問題があります。 TCKimlikTextテキストフィールドに書き込むものは削除できません。客観CでのUITextField shouldChangeCharactersInRange方法

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


} 

どうすればこの問題を解決できますか?

+0

.. [shouldChangeCharactersInRange方法が客観Cで動作しない]の –

+0

可能複製(http://stackoverflow.com/questions/9019086/shouldchangecharactersinrange-method-not-work-in-objective-c) –

+0

私をhelppください。 「私は削除できません」という意味はどうですか?これはあなたが望むものですか? 'TCKimlikText.text = nil;'?あなたの返信ありがとう、それは動作します。 – vakio

答えて

2

以下れるための最良の方法:

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

}

誰かがあなたのテキストフィールドにテキストを貼り付けながら、また、これはあなたを助けるでしょう。

+0

11111111111を最初のテキストフィールドに書き込むと、テキストフィールドのテキストが表示されます(最大11文字)。私は削除できます。しかし、テキストを削除すると、他のテキストフィールドは変更されません。私は111111111111と書いてあり、大丈夫です。しかし、これを削除すれば、11111111111のテキストフィールドの代わりに何か別のものを書き込むことができます。これどうやってするの? –

2

あなたが何を意味するのかではないthatsの場合は、あなたが他のテキストフィールドに変更することを意味ならば、あなたはshouldChangeCharactersInRangeだけ

を使用して、特定のフィールドで動作させることができ、

if ([string length] > 0) 

を使用して削除/バックスペースを検出することができますここで

if (textField == self.myField) 
0
Use this code u achive your target 

あなた...これはvalidation./あるので、もっとして15個のワードを入力することはできませtexfiled

- (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; 
} 
}