2016-03-22 3 views
0

UITextFieldのは、コードによって変更されたときに通常textField.text = @"";UITextFeildのテキストがコードまたはユーザーのどちらかで変更されたときに、どのように通知されるのですか?

のように、私は多くの場合、より多くの私は両方の発射コールバックを必要とすることを発見し、我々はUITextFieldTextDidChangeNotificationeditingDidChange:textField:shouldChangeCharactersInRange:replacementString:などによりUITextFieldのテキスト変更の通知を受ける。しかしそれらのどれもが発射されなかっますコードとユーザーによって例えば、入力を検証し、それに応じてサブミットボタンを有効/無効にする必要があるときに、コンテンツに合わせてUITextViewの高さを変更する必要があるとき。

今はハンドラを明示的に呼び出す必要があります。トラブルから私を救う方法はありますか?前もって感謝します!あなたはこれを試すことができ

+0

いいえ、あなたがしていることは、あなたがしなければならないことです。これは良いことです。さもなければ、再帰に問題が生じる可能性があります。 – rmaddy

+0

私は理解しています。 Thans @rmaddy :) – Hampotato

答えて

0

...

1.TakeのUITextFieldのグローバル変数

2.Giveタグあなたのテキストフィールドに

3.Andは、任意のテキストフィールドのデリゲートメソッドで変数を割り当て、あなたが望むようにそれを使用してください。

これを確認します。

@interface ViewController() 

{ 
UITextField * actvieField; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.firstTextField.tag = 1; 
    self.secondTextField.tag = 2; 
    self.thirdTextField.tag = 3; 
} 

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{ 
    actvieField = textField; 
if (actvieField.tag == 1) 
{ 
    //Do what you want 
} 

    return YES; 
} 
+0

これはどれも質問とは関係ありません。 – rmaddy

+0

彼は妥当性確認と、送信ボタンの無効化を有効にすることについて尋ねました。私はこれを使用して、それは私のために働いた。 @rmaddy – iDeveloper

+0

はい、問題はそれらのアクションを実行する方法ではありません。 OPはすでにそのようなことをする方法を知っています。別の質問を読んでください。それは、テキストフィールドのテキストがコードで直接設定されているときに、テキストフィールドのデリゲートメソッドを呼び出そうとすることです。 – rmaddy

関連する問題