UITextField перейти к предыдущему - PullRequest
2 голосов
/ 06 июня 2011

У меня есть два UITextField на мой взгляд, чтобы позволить пользователю ввести почтовый индекс в формате 1234AA

  • UITextField 1: для нумерации с цифровым блоком
  • UITextField 2: для букв (обычная клавиатура)

Мне удалось автоматически перейти ко второму текстовому полю, когда пользователь ввел четыре цифры.

Я настроил этот метод для этого:

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

Теперь мой вопрос: существует ли способ автоматического перехода назад из текстового поля 2 в текстовое поле 1, когда пользователи нажимают клавишу удаления, когда текстовое поле 2 пусто.

Я не мог заставить это работать, потому что, когда текстовое поле 2 пусто, вышеупомянутый метод не вызывается.

Кто-нибудь знает способ сделать это?

1 Ответ

2 голосов
/ 06 июня 2011

Используйте textField.tag для идентификации ваших текстовых полей. Пример, если вы присваиваете теги 0 и 1 для texFields 1 и 2 соответственно.

// You could do this in the textFieldDidBeginEditing method //

If (textField.tag == 0)
   {
  //Now the first textField must be active//
  // do the method you had posted above//
    }

If (textField.tag ==1)
                   {
  //Now the second textField must be active//

    }

Логика проверки событий клавиатуры приведена в ссылке ниже. В качестве альтернативы вы также можете использовать NSNotification для проверки событий клавиатуры.

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleTextFieldChanged:)name:UITextFieldTextDidChangeNotification
        object:searchTextField];

Проверьте этот вопрос в переполнении стека для обнаружения BackSpace в пустом UITextField Обнаружить возврат в UITextField

Вы также можете использовать это руководство для обнаружения нажатых клавиш, проверки BackSpace и передачи управления обратно в textField 1. http://www.cocos2d -iphone.org / форум / тема / 11725

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