2012-04-17 39 views
0

我想使用兩個文本字段創建登錄系統。我希望用戶編輯第一個文本字段,並通過點擊鍵盤上的下一個跳轉到下一個文本字段,編輯後他應該點擊去系統應該做的事情。所以我真正想要的是能夠從一個文本字段跳轉到下一個字段,當用戶單擊go按鈕(女巫在第二個字段的鍵盤上)時,最重要的部分從兩個字段中獲取輸入文本。我的文本字段都在IB中進行了標記。如果不是很清楚,我想實現與Podio的應用程序登錄非常相似的內容。這是我迄今爲止所擁有的。任何幫助非常讚賞:僅使用鍵盤從多個文本字段獲取字符串

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
    AppSettings *settings = [AppSettings sharedSettings]; 
    NSString *password; 
    NSString *name; 

    if(textField == nameTextField) 
    { 
     name = textField.text; 
     NSLog(@"Name text field: %@",name); 
    } 
    if(textField == passwordTextField) 
    { 
     password = textField.text; 
     NSLog(@"Password text field: %@",password);   
    } 

    //this is where I send a call to the server 
    [[SessionInfo sharedInfo] loginWithEmail:settings.userEmailFromLogin 
            AndName:name AndPasswordRequest:password]; 

    [textField resignFirstResponder]; 
    return YES; 
} 

回答

0
- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
    AppSettings *settings = [AppSettings sharedSettings]; 
    NSString *password; 
    NSString *name; 

    if(textField == nameTextField) 
    { 
     name = textField.text; 
     [passwordTextField becomeFirstResponder]; 
     NSLog(@"Name text field: %@",name); 
    } 
    if(textField == passwordTextField) 
    { 
     password = textField.text; 
     [textField resignFirstResponder]; 
     NSLog(@"Password text field: %@",password); 
     //this is where I send a call to the server 
     [[SessionInfo sharedInfo] loginWithEmail:settings.userEmailFromLogin 
             AndName:name AndPasswordRequest:password]; 
    } 
    return YES; 
} 
+0

密碼是一個字符串。它不能成爲第一響應者。你可以說得更詳細點嗎?謝謝 – alex 2012-04-18 07:53:35

+0

對不起,應該是passwordTextField。我重新編輯了我的答案。 – yibuyiqu 2012-04-19 00:38:58

0

@yibuyiqu並沒有真正爲我工作。但是我解決了如何從多個文本字段中獲取數據的問題。一個只需要從輸入的字符串存儲到一些字典對象,像這樣:

- (void)textFieldDidEndEditing:(UITextField *)textField 
{ 
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 
    AppSettings *settings = [AppSettings sharedSettings]; 
    NSString *password; 
    NSString *name; 

    if ([textField.text isEqualToString:@""]) 
     return; 

    switch (textField.tag) { 
     case NameFieldTag: 
      name = textField.text; 
      [userDefaults setObject:name forKey:kloginName]; 
      settings.userNameFromLogin = [userDefaults objectForKey:kloginName]; 
      break; 

     case PasswordFieldTag: 
      password = textField.text; 
      [userDefaults setObject:password forKey:klogginPassword]; 
      settings.userPasswordFromLogin = [userDefaults objectForKey:klogginPassword]; 
      break; 
     default: 
      break; 
    } 
} 

這個我曾經張貼有人在這裏的解決方案要經過文本框從鍵盤後https://stackoverflow.com/a/1351090/1339876