UITextFeld比较失败

时间:2012-01-11 00:03:49

标签: iphone objective-c ipad uitextfield

我有一个UITextField,我就像这样创建它:

firstnameField1 = [[UITextField alloc] initWithFrame:CGRectMake(85+320*4, 80, 150, 30)];
    [firstnameField1 setBorderStyle:UITextBorderStyleRoundedRect];
    [firstnameField1 setPlaceholder:@"Firstname"];
    [firstnameField1 setDelegate:self];
    [firstnameField1 setReturnKeyType:UIReturnKeyNext];
    [scrollViewController addSubview:firstnameField1];

当用户点击返回键时,我想检查文本字段是否有任何输入键,如果它是空的,用户没有键入任何内容,我想返回并显示一个标签告诉用户该字段是需要在他们继续之前填补,就像你在整个地方看到一样。

我会执行以下操作来检查:

-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
    //Check if the user has typed anything
    if (textField.text == @"") {
        //If not, show 'required' labels
        [firstNameRequiredLbl1 setAlpha:1];
        [surnameRequiredLbl1 setAlpha:1];
        [firstNameRequiredLbl2 setAlpha:1];
        [surnameRequiredLbl2 setAlpha:1];
        return YES;
    }

    //Do all my other stuff, cut out for ease of reading, 100% doesn't affect this anyway

    return YES;
}

我在最后一个方法上设置了一个断点,它跳过if语句,无论我是否输入该文本字段。

有什么想法吗?感谢。

2 个答案:

答案 0 :(得分:2)

您需要更改 textField.text == @""

至: textField.text.length == 0 textField.text isEqualToString:@""

== 运算符在这种情况下实际执行的操作是检查字符串是否存储在相同的内存区域中,而不是它们是否包含相同的字符。

答案 1 :(得分:1)

您不能以这种方式比较NSString个文本字符串。请改用:

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