我有3 UITextField
s(位置,地址,邮编)。我隐藏了viewDidLoad
中的两个字段。
Addres1.hidden = YES;
Zip1.hidden = YES;
我需要的是当我在位置字段中输入多个数字时,我需要显示地址和zip文本字段。 我试过这个:
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
NSString *myString=Location.text;
NSInteger myInt = [myString intValue];
if (myInt >= 2) {
Addres1.hidden = NO;
Zip1.hidden = NO;
}else{
Addres1.hidden = YES;
Zip1.hidden = YES;
}
return YES;
}
但它不起作用。请告诉我在我的代码中我做错了什么。
答案 0 :(得分:1)
NSInteger myInt = [myString length];
而不是
NSInteger myInt = [myString intValue];
并在此方法下撰写
- (void) textFieldDidChange:(UITextField*)textField
如果要比较输入的数字,只需创建一个包含您要比较的所有数字的数组。
NSMutableArray *numberOfArray = [[NSMutableArray alloc]init];
for (int i = 0; i < 100; i++)
{
[numberOfArray addObject: i];
}
这个方法里面: - (void)textFieldDidChange:(UITextField *)textField
if ([numberOfArray containsObject:myInt])
{
Do whatever you want here !
}
答案 1 :(得分:0)
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
}
仅当textfield变为活动状态时才会调用,因此只调用一次,因此您必须在
中编写逻辑- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
}
因为您在textfield中输入的每个字符都会调用此委托