Я создал панель над клавиатурой для текстовых полей с выбором кнопок «предыдущий / следующий / сделанный». При этом я заметил странное вхождение в мои теги, которые я использовал для перемещения между текстовыми полями. Я создаю свой интерфейс программно с помощью цикла, и поэтому просто устанавливаю значения тега для переменной цикла i.
Я начал переменную i с 0, поэтому в самом первом созданном текстовом поле был тег ноль. По сути, то, что происходило, это то, что функциональность «предыдущей» кнопки опустилась бы только до 1. Она даже не вернулась бы к текстовому полю с тегом 0. Единственный способ исправить это - увеличить все значения тега на 1, чтобы первое текстовое поле начиналось с 1, а не с нуля.
Вот мой код. Есть ли в моем коде ошибка, которую я не вижу? или это странная проблема с тегами?
-(void)gotoPrevTextfield{
// If the active textfield is the first one, can't go to any previous
// field so just return.
UITextField *textField = (UITextField *)[inputsView viewWithTag:0];
NSLog(@"%i",textField.tag);
NSLog(@"%i",txtActiveField.tag);
if (txtActiveField == textField) {
NSLog(@"returning at previous");
return;
}
else {
NSLog(@"set responder");
// Otherwise if a different textfield has the focus, the operation
// of "previous" button can be done and set the previous as the first
// responder.
textField = (UITextField *)[inputsView viewWithTag:txtActiveField.tag - 1];
NSLog(@"%i",textField.tag);
NSLog(@"%i",txtActiveField.tag);
[textField becomeFirstResponder];
}
}