【问题标题】:get strings from multiple textfields using only the keyboard仅使用键盘从多个文本字段中获取字符串
【发布时间】:2012-04-17 22:46:42
【问题描述】:

我想创建一个包含两个文本字段的登录系统。我希望用户编辑第一个文本字段,然后通过单击键盘上的下一步跳转到下一个文本字段,编辑后他应该单击 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;
}

【问题讨论】:

    标签: ios login textfield


    【解决方案1】:
    - (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;
    }
    

    【讨论】:

    • 密码是一个字符串。它不能成为第一响应者。你可以说得更详细点吗?谢谢
    • 对不起,应该是passwordTextField。我已经重新编辑了我的答案。
    【解决方案2】:

    @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 浏览文本字段

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-14
      • 2017-07-25
      • 2017-11-15
      • 1970-01-01
      • 2017-12-15
      • 1970-01-01
      • 1970-01-01
      • 2015-08-06
      相关资源
      最近更新 更多