这是我的文本字段的问题。
-(void)textFieldTextDidChange:(NSNotification *)notif
{
event.eventName = eventTextField.text;
event.eventPlace = eventPlaceTextField.text;
event.eventWinery = wineryTitleLabel.text;
int vintageVal = [vintageTextField.text intValue];
if([vintageTextField.text length]>0 && [vintageTextField.text length] == 4)
{
event.eventVintage = vintageVal;
}
else
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"!!! MESSAGE !!!"
message:@" Enter the Valid year in Format YYYY"
delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
[alert release];
return;
}
}
如果用户输入四位数的年份,则只应将其保存到event.eventVitage
但是在输入数据时,我每个号码都会收到警报视图。
我做错了什么?
答案 0 :(得分:0)
您的问题与if语句有关。
if([vintageTextField.text length]>0 && [vintageTextField.text length]
的 == 强> 4)
在&&
部分,您要检查长度是否为4.如果长度不是4,则调用else。您需要检查长度是否小于或等于4 <=
,因此警报仅在长度大于4时显示----------------- -------------------------------------------------- ------------------!
if([vintageTextField.text length]>0 && [vintageTextField.text length]
的&LT = 强> 4)
希望这会有所帮助并获得有趣的编码
答案 1 :(得分:0)
if([vintageTextField.text length]>0 && [vintageTextField.text length] == 4)
{
event.eventVintage = vintageVal;
}
else
{....
这说:如果你的textString是4(这里大于0是多余的......)这意味着当它是1-2-3时它会运行else
代码。
在这种情况下,我经常将文本灰显,直到用户输入足够的数字或禁用“保存”按钮。如果您没有任何方式让用户表明他已完成打字,则很难预见。