UITexfield стал первым респондентом не работает
У меня есть панель инструментов в верхней части клавиатуры с кнопками prev и next. Когда я нажимаю следующую кнопку, следующее текстовое поле должно стать первым респондентом, но этого не происходит. Вот мой код. Благодарю.
-(IBAction) nextfield {
if([name isFirstResponder] == TRUE) {
[name resignFirstResponder];
[surname becomeFirstResponder];
if(surname.editing == TRUE)
NSLog(@"surname");
}
if([surname isFirstResponder] == TRUE) {
[email becomeFirstResponder];
}
if([email isFirstResponder] == TRUE) {
[password becomeFirstResponder];
}
if([password isFirstResponder] == TRUE) {
[confirm becomeFirstResponder];
}
if([confirm isFirstResponder] == TRUE) {
[country becomeFirstResponder];
}
if([country isFirstResponder] == TRUE) {
if(country.text == @"United States") {
[state setEnabled:TRUE];
[state becomeFirstResponder];
}
else {
[type becomeFirstResponder];
}
}
if([state isFirstResponder] == TRUE) {
[type becomeFirstResponder];
}
if ([type isFirstResponder] == TRUE) {
[name becomeFirstResponder];
}
}
Я вхожу в журнал "фамилия", но курсор не появляется, и если я что-то набираю, он нигде не появляется. Пожалуйста, помогите. Спасибо.
2 ответа
Таким образом, вы проверяете, является ли имя первым респондентом, и если это так, тогда фамилией первого респондента.
Затем вы проверяете, является ли фамилия первым респондентом, и если это так, вы отправляете электронное письмо первым респондентом.
Затем вы проверяете, является ли электронная почта первым ответчиком, и если это....
Ваша проблема в том, что каждое из этих утверждений, если они верны, потому что стать первым респондентом - это незамедлительно.
Другими словами, вы должны использовать else if (...)
заявления вместо дискретных, если заявления.
Создать массив объекта текстового поля, скажем, textFieldArray. затем на предыдущей и следующей вкладке кнопки вызовите следующую функцию
-(void)gotoPrevTextfield
{
for(int i=1 ;i<[textFieldArray count];i++)
{
if([textFieldsArray [i] isFirstResponder])
{
[textFieldsArray[i-1] becomeFirstResponder];
[textFieldsArray [i] resignFirstResponder];
break;
}
}}
-(void)gotoNextTextfield
{
for( int i=0 ;i<[textFieldArray count];i++)
{
if([textFieldsArray [i] isFirstResponder])
{
[textFieldsArray [i+1] becomeFirstResponder];
[textFieldsArray [i] resignFirstResponder];
break;
}
}}