[英]UIAlertView showing unintentionally after each number entry
这是我的文本字段的问题。
-(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
但是,当输入数据时,我会在每个数字上看到警报视图。
我究竟做错了什么?
您的问题在于您的if语句。
if([vintageTextField.text length]>0 && [vintageTextField.text length]
== 4)
在它的&&
部分中,您要检查长度是否为4。如果长度不是4,则调用else。 您需要检查长度是否小于或等于4 <=
,因此仅当长度大于4时才会显示警报。 -------------------------------------------------- ---------------!
if([vintageTextField.text length]>0 && [vintageTextField.text length]
<= 4)
希望这会有所帮助,并祝您编程愉快
if([vintageTextField.text length]>0 && [vintageTextField.text length] == 4)
{
event.eventVintage = vintageVal;
}
else
{....
这表示:如果您的textString为4(大于0在这里是多余的。。)这意味着当它为1-2-3时,它将运行else
代码。
在这种情况下,我经常将文本显示为灰色,直到用户输入足够的数字为止,或者禁用“保存”按钮。 如果您无法让用户指示他已经完成输入,则很难预见。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.