比较文本字段中的占位符文本

时间:2013-11-28 06:54:36

标签: ios objective-c uitextfield

我在故事板中设置了文本字段(homeTeam)的占位符文本(例如,18岁以下)。现在我想检查下面的情况。

- (BOOL)textFieldShouldBeginEditing:(UITextField *) textField
{
    if ([_homeTeam.text isEqualToString:@"e.g. Under 18s"]) { // e.g. Under18s
        [_homeTeam setPlaceholder:@""];
    }
}

但条件永远不会成真。我在这里失踪了什么?当我使用NSlog跟踪时,_homeTeam.text为空。为什么会这样?

请建议。

2 个答案:

答案 0 :(得分:2)

更改if条件,因为您将占位符文字设置为_homeTeam.placeholder的文字,所以_homeTeam.text不应为UITextField

- (BOOL)textFieldShouldBeginEditing:(UITextField *) textField
{
    if ([_homeTeam.placeholder isEqualToString:@"e.g. Under 18s"]) { // e.g. Under18s
        [_homeTeam setPlaceholder:@""];
    }
}

答案 1 :(得分:1)

您实际上想要与placeholder属性进行比较,而不是text(由用户输入)。

另外,我会直接引用textField(而不是_homeTeam,因为您可能会在以后添加其他文本字段),如下所示:

- (BOOL)textFieldShouldBeginEditing:(UITextField *) textField
{
    if ([textField.placeholder isEqualToString:@"e.g. Under 18s"]) { // e.g. Under18s
        [textField setPlaceholder:@""];
    }
}