检查textField.text isEqualToString

时间:2012-05-11 13:19:50

标签: ios nsstring uitextfield

我有qtyTextFields动态添加到自定义UITableViewCell。 我要做的是检测用户是否在UITextField中输入了字符串0,如果是,则从NSMutableArray中删除对象。 (我知道如何从NSMutableArray删除对象

下面的实现对我没有任何作用,甚至没有记录任何内容:

-(void)textFieldDidEndEditing:(UITextField *)textField{  
    if ([qtyTextField.text isEqualToString: @"0"])
    {
        NSLog(@"You ENTERED 0");
        [theProducts removeObjectAtIndex:qtyTextField.tag];
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        NSString *path = [documentsDirectory stringByAppendingPathComponent:@"basket.plist"];
        [theProducts writeToFile:path atomically:YES];
    }
    else
    {
        NSLog(@"Do Nothing");
    } 
    [self.tableView reloadData];
    }
}

3 个答案:

答案 0 :(得分:2)

您是否尝试过使用从方法中获得的UITextField实例?所以if语句应为:

if ([textField.text isEqualToString: @"0"]){
    //code here
}

答案 1 :(得分:0)

如果它甚至没有记录任何内容,则听起来您没有在文本字段中设置委托。首先执行此操作,然后您应该会在日志中看到“DO NOTHING”或“You Entered Something”。

答案 2 :(得分:0)

由于您的代码无效,可能存在各种情况: -

1.您可能没有在.h文件中实现UITextFieldDelegate

2.您可能没有在viewDidLoad方法

中设置文本字段委托
myTextField.delegate=self;

您可以使用此代码

if([myTextField.text length]==0)
{
//Show some error
}
else
{
if([myTextField.text isEqualToString:[NSString stringWithFormat:"%@",@"0"]])
{
//Your Operation
}
}

在这里你可能要记住textfield delegate的设置。如果它在tableview上,那么它的委托将是tableviewcontroller,如果你有一个其他的viewcontroller。