仅使用键盘从多个文本字段中获取字符串
Posted
技术标签:
【中文标题】仅使用键盘从多个文本字段中获取字符串【英文标题】: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;
【问题讨论】:
【参考方案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://***.com/a/1351090/1339876 浏览文本字段
【讨论】:
以上是关于仅使用键盘从多个文本字段中获取字符串的主要内容,如果未能解决你的问题,请参考以下文章