我在故事板中设置了文本字段(homeTeam)的占位符文本(例如,18岁以下)。现在我想检查下面的情况。
- (BOOL)textFieldShouldBeginEditing:(UITextField *) textField
{
if ([_homeTeam.text isEqualToString:@"e.g. Under 18s"]) { // e.g. Under18s
[_homeTeam setPlaceholder:@""];
}
}
但条件永远不会成真。我在这里失踪了什么?当我使用NSlog跟踪时,_homeTeam.text为空。为什么会这样?
请建议。
答案 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:@""];
}
}