2016-03-22 1 views
0

Обычно мы получаем уведомление об изменении текста UITextField путем UITextFieldTextDidChangeNotification, editingDidChange:, textField:shouldChangeCharactersInRange:replacementString: и т.д. Но ни один из них не увольняют, когда UITextField изменяется с помощью кода, как textField.text = @"";Как я могу получать уведомления, когда текст UITextFeild изменяется, либо кодом, либо пользователем?

Я обнаружил, что более часто мне нужен обратный вызов, который стреляет как по коду и пользователю. Например, когда мне нужно проверить правильность ввода и включения/выключения кнопки отправки, когда мне нужно изменить высоту UITextView, чтобы она соответствовала его контенту ...

Сейчас я должен явно вызвать обработчики. Есть ли способ спасти меня от этой проблемы? Заранее спасибо!

+0

Нет, что вы делаете, это то, что вам нужно делать. Это хорошая вещь, иначе у вас может возникнуть проблема с рекурсией. – rmaddy

+0

Я понимаю. Thans @rmaddy :) – Hampotato

ответ

0

Вы можете попробовать это ...

1.Take глобальная переменная UITextField

2.give теги к вашему текстовому полю

3.And присвоить переменной в любом методе TextField делегата и используйте его, как хотите.

проверьте это, например.

@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

Да, но вопрос заключается не в том, как выполнять эти действия. ОП уже знает, как это делать. Попросите другого прочитать вопрос. Речь идет о попытке вызвать методы делегата текстового поля, когда текст текстового поля напрямую устанавливается через код. – rmaddy