我有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];
}
}
答案 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。