UITextField editChange Control Event не работает - PullRequest
0 голосов
/ 25 января 2012

У меня есть несколько текстовых полей, и я хочу это сделать, когда я изменю текст textfield1 на другие текстовые поля.Мой код ниже.Но это не работает.Как я могу решить это?

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

}

Ответы [ 2 ]

1 голос
/ 25 января 2012

Ваш код очень абстрактный. yourMethod, tf_ TCKimlikTextChange - все выражения, которые не очень понятны человеку. Вы должны работать с именами переменных.

Полагаю, ваш первый метод - обработчик кнопок. Он только назначил цель и действие текстовому полю, но не вызывает никакого метода. Вам не нужно это действие, если вы используете протокол делегата.

Для решения вашей проблемы: внедрите методы делегата UITextField. Убедитесь, что вы установили делегата (вероятно, self) для ваших текстовых полей. Ваш контроллер представления должен упомянуть протокол <UITextFieldDelegate> в своем файле .h. Таким образом, в textField:shouldChangeCharactersInRange:replacementString::

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

Обратите внимание, что вам нужно isEqualToString: для сравнения строк, простой == не подойдет.

0 голосов
/ 25 января 2012

Если вы хотите изменить по нажатию кнопки возврата, используйте делегат

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

    [field1 resignFirstResponder];
    return  YES;

}

или вы можете использовать других делегатов, например: - textFieldShouldBeginEditing: - textFieldDidBeginEditing:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...