сохранение текстовых данных из UITextField без нажатия дополнительной клавиши (требуется помощь)

Я новичок в программировании для iPhone. Я работаю с UITextField и UITextFieldDelegate. У меня пять текстовых полей. Я пытаюсь ввести в них данные с помощью клавиатуры numberPad. И данные должны быть длиной в 1 цифру. После этого нажатие другой клавиши должно перейти к следующему текстовому полю. Я реализовал все это, но единственная проблема заключается в том, что когда все 5 текстовых полей заполнены, мне нужно нажать на клавиатуру 6-й раз, чтобы сохранить текстовые данные пятого текстового поля. Есть ли способ сохранить текстовые данные 5-го текстового поля без нажатия какой-либо клавиши на клавиатуре 6 раз?

Любая помощь или предложения приветствуются.

Спасибо Вик


person Vik    schedule 28.06.2011    source источник
comment
Может ли пользователь случайным образом выбрать, какое текстовое поле он хочет ввести первым? Я предполагаю, что это работает аналогично сайтам, где мы вводим 4 цифры или номера кредитных карт за раз. :-)   -  person Praveen S    schedule 28.06.2011
comment
@Praveen - Ну, пользователь может выбрать щелчок по любому текстовому полю, но, согласно моему коду, элемент управления перейдет к первому текстовому полю, но после этого пользователь может случайным образом выбрать любое текстовое поле. есть идеи как это реализовать?   -  person Vik    schedule 28.06.2011
comment
@Praveen - Верно, и я попробовал, но дело в том, что методы UITextField не запускаются, пока я не нажму другую клавишу на клавиатуре с цифровой панелью, пока я в текстовом поле 5 (чего я не хочу). Я хочу нажать клавишу, которая уйдет в отставку с textField4, и результат даст мне сохраненные числа из всех текстовых полей от 1 до 4 плюс нажатую клавишу, чтобы уйти в отставку с textField 4 и ввести TextField 5. Есть ли способ для этого?   -  person Vik    schedule 28.06.2011


Ответы (2)


Вы можете использовать метод делегата textFieldDidChange для 5-го TextField и сравнить его следующим образом.

if (textField == textField5 && [длина текстового поля]> 0) {

[textField resignFirstResponder];

}

Я надеюсь, это поможет.

person Deeps    schedule 28.06.2011
comment
Это правильно, и я попробовал, но дело в том, что методы UITextField не запускаются, пока я не нажму другую клавишу на клавиатуре с цифровой панелью, пока я в текстовом поле 5 (чего я не хочу). Я хочу нажать клавишу, которая уйдет в отставку с textField4, и результат даст мне сохраненные числа из всех текстовых полей от 1 до 4 плюс нажатую клавишу, чтобы уйти в отставку с textField 4 и ввести TextField 5. Есть ли способ для этого? - person Vik; 28.06.2011
comment
Я думаю, вы сможете реализовать всю логику в этом методе. Вам просто нужно проверить, в каком текстовом поле вы находитесь. Вот и все. Вот почему я сравнил его с TextField5, поэтому он ничего не сделает с любым другим textField. Вы также можете проверить другие текстовые поля здесь, в случае переключения. Может быть, вы можете поделиться кодом, чтобы получить точное представление? - person Deeps; 28.06.2011

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

if(count == num_of_textfields)
{
  [textField resignFirstResponder];

  //Call your method to process the input here.

}
person Praveen S    schedule 28.06.2011
comment
@Matteo - Это правильно, и я попробовал, но дело в том, что методы UITextField не запускаются, пока я не нажму другую клавишу на клавиатуре цифровой клавиатуры, пока я в текстовом поле 5 (что мне не нужно). Я хочу нажать клавишу, которая уйдет в отставку с textField4, и результат даст мне сохраненные числа из всех текстовых полей от 1 до 4 плюс нажатую клавишу, чтобы уйти в отставку с textField 4 и ввести TextField 5. Есть ли способ для этого? - person Vik; 28.06.2011