我有五个输入数字的字段,每个字段必须在一定的数字范围内。例如,第一场应该在40以上且在100以下。第二场应该高于1.25且低于5.5。你得到了其余的想法。
我能够创建一个UIAlertView,但仅适用于按下按钮来计算每个字段。如果最终用户为五个字段中的每个字段输入错误的数据,则他们将看到五个不同的警报,并且实际上不是UI友好的。
我希望在用户输入数字的位置,当用户进入下一个字段时,评估他们的输入,然后发送警报视图。这样,用户在输入另一个字段之前就会自动知道。我认为这对UI来说会更容易。但是,我不知道最好的方法,我只是学习iPhone SDK和ObjC。
这是我用于buttonPressed按钮的代码,正如您所看到的那样,您可以看到五个(本例中为四个)字段中的每个字段,将它们分配给变量,创建两个测试UIAlerts,并在输出之前进行一些数学运算答案。请记住,我在这里是一个n00b .....
//calculate total of variables when user clicks button
-(IBAction) submitYourName;
{
/*********************************************************
declare our variables to strings
********************************************************/
NSString *userNameOne = txtUserName.text;
float numOne = [userNameOne intValue];
NSString *userNameTwo = txtUserName2.text;
float numTwo = [userNameTwo intValue];
NSString *userNameThree = txtUserName3.text;
float numThree = [userNameThree intValue];
NSString *userNameFour = txtUserName4.text;
float numFour = [userNameFour intValue];
/*********************************************************
allow error handling for our numbers
********************************************************/
if(numOne < 40 || numOne > 100)
{
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"User Error"
message:@"Your age must be at least 40 years old and less than 100 years old"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
}
if(numTwo < 40 || numTwo > 100)
{
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"User Error"
message:@"Your age must be at least 40 years old and less than 100 years old"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
}
/*********************************************************
calculate our mathematics
********************************************************/
float one = 3;
float main = numOne * one;
/*********************************************************
produce answer
********************************************************/
lblUserTypedName.text = [[NSString alloc] initWithFormat: @"you input %2.2f %2.2f %2.2f %2.2f", main, numTwo, numThree, numFour];
}
答案 0 :(得分:0)
我想说调用UITextFieldDelegate:
- (void)textFieldDidEndEditing:(UITextField *)textField;
方法,并在其中检查输入验证。
顺便说一句,你为什么要显示太多警报?我建议创建一个NSString,它将遍历每个if
并添加类似“字段1的输入无效”的内容。等等,最后显示一个带有所有细节的UIAlertView。
这将是用户友好的,IMO比您当前的解决方案更好。
这只是我的想法,但我希望这对你有所帮助。 〜纳塔纳瓦拉。