[英]UITextfield become first responder not working
我在键盘顶部有一个工具栏,带有上一个和下一个按钮。 当我按下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];
}
}
我进入日志“姓”,但光标未显示,如果我键入某些内容,它将不会出现在任何地方。
因此,您要检查名称是否是第一响应者,如果是,则将姓氏设为第一响应者。
然后检查并检查姓氏是否是第一响应者,如果是,则向第一响应者发送电子邮件。
然后检查电子邮件是否是第一响应者,以及是否是第一响应者。
您的问题是,这些if语句中的每一个都是正确的,因为成为第一响应者是直接的事情。
换句话说,您应该使用else if (...)
语句,而不是离散的if语句。
创建一个textfield对象数组,可以说textFieldArray。 然后在上一个和下一个按钮选项卡上调用func
-(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;
}
}}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.