为 UITextfield 设置 If 语句以检查输入的数字并执行操作(通过 UIButton)
Setting If statement for UITextfield to check the entered number and perform action (via UIButton)
我有三个 UIText-field
输入 300 以下的数字 only.After 我们必须单击 uibutton
调用 calculate
。单击计算按钮后,它将计算在我的 UITex-field
中输入 3 个数字并显示结果。
更新:
我需要检查我的 UITextfield
在我的 calculate
按钮之前或之后的条件 press.The 在我的 UITex 字段中输入的值应该低于 300 only.if 该值输入超过 300 意味着任何警告或 uialert 应该 show.How 执行此操作?
这是我用来获取数字和执行操作的三个文本字段:
- (IBAction)calcBtn:(id)sender {
if ([coffeTf.text <= 300] || [waterTf.text <=300] || [powderTf.text <=300]) {
UIAlertView *error = [[UIAlertView alloc] initWithTitle:@"oops" message:@"You must complete all fields" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
[error show];
}
else {
int cofee = [[self.coffeTf text] intValue];
int water = [[self.waterTf text] intValue];
int powder = [[self.powderTf text] intValue];
float cutoff = (CGFloat) cofee/3 + water/3 + powder/2;
NSLog(@"Result: %f", cutoff);
NSString *cutmark = [NSString stringWithFormat:@"%.2f", Result];
self.resultTf.text = Result;
}
我已经更新了我的 post.In 我使用 if 语句检查的代码,但是我收到错误 Expected identifier
。因此我缺少任何代码:
if ([coffeTf.text <= 300] || [waterTf.text <=300] || [powderTf.text <=300]) {
UIAlertView *error = [[UIAlertView alloc] initWithTitle:@"oops" message:@"You must complete all fields" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
[error show];
}
else {
}
您应该使用文本字段委托,为文本字段设置委托并使用以下方法(假设您只在文本字段中获取数值)
在.h文件接口中添加UITextField委托
yourViewController:UIViewController<UITextFieldDelegate>
在View DidLoad方法中添加
coffeTf.delegate = self;
waterTf.delegate = self;
powderTf.delegate = self;
然后只需复制粘贴以下内容即可。不要改变任何东西
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
return [newString intValue] < 300;
}
通过这种方式,文本字段永远不会获得 300 或更高的值。
我有三个 UIText-field
输入 300 以下的数字 only.After 我们必须单击 uibutton
调用 calculate
。单击计算按钮后,它将计算在我的 UITex-field
中输入 3 个数字并显示结果。
更新:
我需要检查我的 UITextfield
在我的 calculate
按钮之前或之后的条件 press.The 在我的 UITex 字段中输入的值应该低于 300 only.if 该值输入超过 300 意味着任何警告或 uialert 应该 show.How 执行此操作?
这是我用来获取数字和执行操作的三个文本字段:
- (IBAction)calcBtn:(id)sender {
if ([coffeTf.text <= 300] || [waterTf.text <=300] || [powderTf.text <=300]) {
UIAlertView *error = [[UIAlertView alloc] initWithTitle:@"oops" message:@"You must complete all fields" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
[error show];
}
else {
int cofee = [[self.coffeTf text] intValue];
int water = [[self.waterTf text] intValue];
int powder = [[self.powderTf text] intValue];
float cutoff = (CGFloat) cofee/3 + water/3 + powder/2;
NSLog(@"Result: %f", cutoff);
NSString *cutmark = [NSString stringWithFormat:@"%.2f", Result];
self.resultTf.text = Result;
}
我已经更新了我的 post.In 我使用 if 语句检查的代码,但是我收到错误 Expected identifier
。因此我缺少任何代码:
if ([coffeTf.text <= 300] || [waterTf.text <=300] || [powderTf.text <=300]) {
UIAlertView *error = [[UIAlertView alloc] initWithTitle:@"oops" message:@"You must complete all fields" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
[error show];
}
else {
}
您应该使用文本字段委托,为文本字段设置委托并使用以下方法(假设您只在文本字段中获取数值)
在.h文件接口中添加UITextField委托
yourViewController:UIViewController<UITextFieldDelegate>
在View DidLoad方法中添加
coffeTf.delegate = self;
waterTf.delegate = self;
powderTf.delegate = self;
然后只需复制粘贴以下内容即可。不要改变任何东西
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
return [newString intValue] < 300;
}
通过这种方式,文本字段永远不会获得 300 或更高的值。