периодически проверяйте значение UITextField - PullRequest
1 голос
/ 07 октября 2010

У меня есть сканер, который читает текст в UITextField, похоже, что это один символ за раз. Поэтому каждые полсекунды или около того я хочу проверять значение этого UITextField, чтобы я мог получить это значение.

Ответы [ 2 ]

5 голосов
/ 07 октября 2010

Два варианта:

1) Установить делегат текстового поля , а затем перехватить изменения, как они происходят в методе mustChangeCharactersInRange указанного делегата.

2) Useобъект NSTimer .

В большинстве случаев первый метод лучше, но если вы хотите проверять время от времени, а не фиксировать изменения по мере их возникновения, вам понадобится NSTimer.

0 голосов
/ 07 октября 2010

Я думаю, что есть лучший метод, чем тот, который указал Уильям, хотя оба будут работать.

Лучшим вариантом будет установить событие UIControlEventEditingChanged в действии.Например:

[textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];

Это вызовет метод:

- (void)textFieldDidChange:(id)sender { }

каждый раз, когда изменяется текстовое поле.Убедитесь, что вы также объявляете метод в своем интерфейсе.Операторы, которые вы вставляете между {} (фигурные скобки), будут выполняться для каждого изменения в тексте.

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

[NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(textFieldDidChange) userInfo:nil repeats:YES];

-Dan

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