[英]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.