UITextField valueDidChange-Event - PullRequest
       12

UITextField valueDidChange-Event

1 голос
/ 04 апреля 2010

Есть ли способ поймать событие "valueDidChange" для текстового поля? * 1001 оо *

У меня есть modalView с UITextField.

Когда UITextField пусто, кнопка «Готово» на панели навигации должна быть отключена и когда введен текст, он должен быть включен.

Прямо сейчас единственный способ сделать это с помощью метода "textFieldShouldReturn". Это работает, но просто ужасно для удобства использования.

Нет ли способа проверить требования каждый раз, когда письмо вводится или удаляется?

Ответы [ 3 ]

2 голосов
/ 09 апреля 2010

Если кому-то все равно: решение состоит в том, чтобы перехватить управляющее событие «EditingChanged» с помощью addTarget: selector: controlevent:;)

2 голосов
/ 21 марта 2012

У меня есть UITableViewController с self.editButtonItem, который активируется, только если в UITextField.text есть текст.Это способ гарантировать, что пользователь не нажмет «Готово», пока он / она не заполнит это UITextField чем-либо.Я думаю, что это именно то, что вы ищете.Вот как я это сделал:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

    // Logs for seeing patterns, if you so please
    NSLog(@"replacementString length = %d",string.length);
    NSLog(@"textField.text = %@",textField.text);
    NSLog(@"range = (%d,%d)\n\n",range.location,range.length);

    if (string.length) {
        self.editButtonItem.enabled = YES;
    } else if (!string.length && textField.text.length == range.length) {
        self.editButtonItem.enabled = NO;
    }
    return YES;
}

Надеюсь, это поможет

2 голосов
/ 04 апреля 2010
...