我有四个 UITextField
,我想限制每个的长度,但它们的长度都不一样。到目前为止,我有以下代码,但它不能正常工作
define MAXLENGTH 5
define MAXQTY 3
define MAXSIZE 4
define MAXBRAND 10
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
int lengtha = [brand.text length] ;
NSLog(@"lenghta = %d",lengtha);
if (lengtha >= MAXBRAND && ![string isEqualToString:@""]) {
brand.text = [brand.text substringToIndex:MAXBRAND];
return NO;
}
return YES;
int lengthb = [qty.text length] ;
NSLog(@"lenghtb = %d",lengtha);
if (lengthb >= MAXQTY && ![string isEqualToString:@""]) {
qty.text = [qty.text substringToIndex:MAXQTY];
return NO;
}
return YES;
int lengthc = [size.text length] ;
NSLog(@"lenghtc = %d",lengtha);
if (lengthc >= MAXSIZE && ![string isEqualToString:@""]) {
size.text = [size.text substringToIndex:MAXSIZE];
return NO;
}
return YES;
int lengthd = [price.text length] ;
NSLog(@"lenghtd = %d",lengtha);
if (lengthd >= MAXLENGTH && ![string isEqualToString:@""]) {
price.text = [price.text substringToIndex:MAXLENGTH];
return NO;
}
return YES;
}
最佳答案
如果品牌、数量、尺寸和价格是实例变量(或属性)并连接到您的 UITextFields,您可以试试这个:
define MAXLENGTH 5
define MAXQTY 3
define MAXSIZE 4
define MAXBRAND 10
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
if (textField == brand) {
int lengtha = [brand.text length];
NSLog(@"lenghta = %d",lengtha);
if (lengtha >= MAXBRAND && ![string isEqualToString:@""]) {
brand.text = [brand.text substringToIndex:MAXBRAND];
return NO;
}
return YES;
} else if (textField == qty) {
int lengthb = [qty.text length];
NSLog(@"lenghtb = %d",lengthb);
if (lengthb >= MAXQTY && ![string isEqualToString:@""]) {
qty.text = [qty.text substringToIndex:MAXQTY];
return NO;
}
return YES;
} else if (textField == size) {
int lengthc = [size.text length];
NSLog(@"lenghtc = %d",lengthc);
if (lengthc >= MAXSIZE && ![string isEqualToString:@""]) {
size.text = [size.text substringToIndex:MAXSIZE];
return NO;
}
return YES;
} else if (textField == price) {
int lengthd = [price.text length];
NSLog(@"lenghtd = %d",lengthd);
if (lengthd >= MAXLENGTH && ![string isEqualToString:@""]) {
price.text = [price.text substringToIndex:MAXLENGTH];
return NO;
}
return YES;
}
return YES;
}
关于objective-c - 限制多个 UITextField 的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6170820/