2012-01-25 3 views
0

私はいくつかのテキストフィールドを持っており、textfield1テキストを他のテキストフィールドに変更するとしたいです。下の私のコード。しかし、それは動作しません。これをどうすれば解決できますか?UITextField editingChangeコントロールイベントが機能しません

- (IBAction)TCKimlikTextChange:(id)sender { 

[TCKimlikText addTarget:self action:@selector(yourMethod:) forControlEvents:UIControlEventEditingChanged]; 
} 

-(void)yourMethod: (UITextField*)tf_{ 

if (tf_) { 
    if (TCKimlikText.text == @"1") { 
     AdinizText.text = @"Hacer"; 
    } 
} 

} 

答えて

1

あなたのコードは非常に抽象です。 、tf_TCKimlikTextChangeは、あまり人間が読めない表現です。変数名を操作する必要があります。

あなたの最初のメソッドがボタンハンドラだとします。これは、ターゲットとアクションをテキストフィールドに割り当てただけですが、メソッドを呼び出すことはありません。デリゲートプロトコルを使用する場合、そのアクションは必要ありません。

問題を解決するにはUITextFieldデリゲートメソッドを実装します。テキストフィールドにデリゲート(おそらくself)を設定してください。あなたのビューコントローラは、.hファイルに<UITextFieldDelegate>プロトコルを記述する必要があります。したがって、textField:shouldChangeCharactersInRange:replacementString:に:あなたは文字列を比較するisEqualToString:が必要

if ([textField.text isEqualToString:@"1"]) { 
    displayLabel.text = @"Hacer"; 
} 

お知らせ、簡単な==はしないだろう。

+0

テキストフィールドが何であるかを:shouldChangeCharactersInRange:replacementString :: –

+0

また、私は既にdelegateとを追加しています。そして、あなたの "isEqualToString"メソッドを試してみます。 –

+0

'textField:shouldChangeCharacters ...'を実装しましたか?あなたが '-text'と打ち始めるならば、あなたの' .m'ファイルにポップアップするはずです。 – Mundi

0

uがデリゲート

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
    if(textField == field1) 
     [field2 setText:field1.text]; 

    [field1 resignFirstResponder]; 
    return YES; 

} 

またはuはあまりにものような他の代表使うことができ、戻るボタンのクリックに変更したい場合: - textFieldShouldBeginEditing: - textFieldDidBeginEditing:

+0

私も試してみました - textFieldDidBeginEditing:でもそれはうまくいきません –

+0

また、この方法では動作しません:S –

関連する問題