我正在开发iphone应用程序,其中包含应用程序首选项设置中的用户名和密码字段。我想验证一些网站上的用户名和密码,当用户按下返回按钮,如iPod的音乐应用程序,验证完成后的苹果ID和密码。 还想知道如何在首选项textFiled中将键盘返回键更改为完成按钮。
答案 0 :(得分:1)
当您按下返回键时,您只需要一个功能来验证userName和Password。
第一部分:在网站上验证凭据
实现UITextField的委托方法,例如
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
[textField resignFirstResponder];
if (textField == txtfEmail)
[txtfPassword becomeFirstResponder];
else {
[self login];
}
return YES;
}
当按下Next(返回)键时,这将使密码字段成为下一个响应者,稍后当密码字段完成时,然后当用户按下完成(返回)键时它将调用登录方法
-(void)login {
if([self validateLoginCredentials]) {
iDNUser* currentUser = [[iDNUser alloc] init];
currentUser.strEmail = txtfuserId.text;
currentUser.strPwd = txtfpassword.text;
if (!wsRequestObject) {
wsRequestObject = [[iDNWebServiceInterface alloc] initWithTarget:self andReturnType:kiDNUserPacket];
}
[wsRequestObject loginUser:currentUser];
[currentUser release];
}
}
此处 iDNWebServiceInterface 是一个自定义类,它在服务器上调用基于JOSN的Webserivce来验证用户。
您可以根据Web服务的便利性和服务器实现来处理此部分(调用服务器方法)。
// --------------
- (BOOL)validateLoginCredentials {
BOOL isValid = NO;
if ([txtfuserId isFirstResponder]) {
[txtfuserId resignFirstResponder];
}
if ([txtfpassword isFirstResponder]) {
[txtfpassword resignFirstResponder];
}
UIAlertView* errorAlert = [[UIAlertView alloc] init];
if ([txtfuserId.text length] > 0 ) {
if ([txtfpassword.text length] > 0) {
isValid = YES;
}
else
{
[errorAlert setTitle:@"Message"];
[errorAlert setMessage:@"Password can not be blank."];
[errorAlert addButtonWithTitle:@"OK"];
[errorAlert setCancelButtonIndex:0];
[errorAlert show];
[txtfpassword becomeFirstResponder];
}
}
else {
[errorAlert setTitle:@"Message"];
[errorAlert setMessage:@"User Id can not be blank."];
[errorAlert addButtonWithTitle:@"OK"];
[errorAlert setCancelButtonIndex:0];
[errorAlert show];
[txtfuserId becomeFirstResponder];
}
[errorAlert release];
return isValid;
}
将帮助您决定并通知用户任何遗失的字段。
第二部分:如何更改返回键
使用XCode 3.2.x,您可以选择文本字段并按Cmd + 1打开属性检查器
您可以在此处将返回类型设置为预定义列表中的任何内容,如屏幕截图
所示
希望有所帮助
答案 1 :(得分:1)
您无法在中央设置应用中执行此操作。在那里运行自己的代码是不可能的,你可以告诉它可以输入什么样的数据。
Apple当然不受此限制的约束,因此他们可以在设置应用中执行他们喜欢的操作。
如果你想要登录控制和身份验证,那么这必须在你的应用程序中完成 - 从用户的角度来看这是有道理的,他们不希望必须切换到设置才能开始使用你的应用程序。