如何在音乐应用程序等应用程序首选项设置中处理iphone键盘完成按钮

时间:2011-12-28 10:03:42

标签: iphone

我正在开发iphone应用程序,其中包含应用程序首选项设置中的用户名和密码字段。我想验证一些网站上的用户名和密码,当用户按下返回按钮,如iPod的音乐应用程序,验证完成后的苹果ID和密码。 还想知道如何在首选项textFiled中将键盘返回键更改为完成按钮。

2 个答案:

答案 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打开属性检查器

您可以在此处将返回类型设置为预定义列表中的任何内容,如屏幕截图

所示

enter image description here

希望有所帮助

答案 1 :(得分:1)

您无法在中央设置应用中执行此操作。在那里运行自己的代码是不可能的,你可以告诉它可以输入什么样的数据。

Apple当然不受此限制的约束,因此他们可以在设置应用中执行他们喜欢的操作。

如果你想要登录控制和身份验证,那么这必须在你的应用程序中完成 - 从用户的角度来看这是有道理的,他们不希望必须切换到设置才能开始使用你的应用程序。

相关问题