2011-05-08 48 views
1

我有一個工具欄上的鍵盤頂部prev和下一個按鈕。當我按下一個按鈕時,下一個文本框應該成爲第一響應者,但這不會發生。這是我的代碼。謝謝。UITexfield成爲第一響應者不工作

-(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([email protected]"United States") 
    { 
     [state setEnabled:TRUE]; 
     [state becomeFirstResponder]; 
    } 
    else { 
     [type becomeFirstResponder]; 
    } 
} 
if([state isFirstResponder]==TRUE) 
{ 
    [type becomeFirstResponder]; 
} 
if ([type isFirstResponder]==TRUE) { 
    [name becomeFirstResponder]; 
} 
} 

我得到日誌「姓氏」,但光標不顯示,如果我鍵入的東西它不會出現在任何地方。請幫忙。謝謝。

+0

非常感謝你這個奇妙的問題。正是我在找什麼。 – 2015-05-21 12:43:41

回答

3

因此,您要檢查名稱是否是第一響應者,如果是,則使姓氏成爲第一響應者。

然後你檢查並查看姓氏是否是第一響應者,如果是,則將電子郵件作爲第一響應者。

然後你檢查,看看郵件是第一個響應者,如果是....

你的問題是那些if語句中的每一個是真的,因爲成爲第一個響應者是一個眼前的事情。

換句話說,您應該使用else if (...)語句而不是離散if語句。

+0

It works.You is a life saver.Thanks。謝謝。 – user739509 2011-05-08 13:45:10

0

創建一個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; 
    } 
}} 
+0

簡單的方法,更少的海塞爾,對我很好。 – yug 2013-12-12 11:27:51

相關問題