[英]Disabled UIButton dependant on 4 UITextFields
I have 4 UITextFields that I am using to keep 2 UIButtons disabled until all 4 fields have data entered into them.我有 4 个 UITextFields 我用来保持 2 个 UIButtons 禁用,直到所有 4 个字段都输入了数据。 I have the following code so far
到目前为止我有以下代码
- (void)textFieldDidBeginEditing:(UITextField *)textField {
if (([brand.text length] >0) && ([qty.text length] >0) && ([size.text length] >0) && ([price.text length] >0)) {
[calcOneButton setEnabled:YES];
[calcTwoButton setEnabled:YES];
}else {
}
}
I have a number of problems with this:-我对此有很多问题:-
Can anyone help with these points?任何人都可以帮助解决这些问题吗?
The code for logging the length of a field is as follows:-记录字段长度的代码如下:-
#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;
}
it follows the same format for all 4 fields, but as I enter a character the NSlog results as a 0 then 1 for the second character and so on.它对所有 4 个字段都遵循相同的格式,但是当我输入一个字符时,NSlog 结果为 0,然后第二个字符为 1,依此类推。
Just use another delegate-method.只需使用另一个委托方法。
Either use: textFieldDidEndEditing:
like Krypton told you in a comment要么使用:
textFieldDidEndEditing:
就像氪星在评论中告诉你的那样
or use textField:shouldChangeCharactersInRange:replacementString:
for enable/disable directly when typing.或使用
textField:shouldChangeCharactersInRange:replacementString:
在键入时直接启用/禁用。
textField:(UITextField*)aTextField shouldChangeCharactersInRange:(NSRange) aRange replacementString:(NSString*)aRepString
{
NSString *newStr = [aTextField.text stringByReplacingCharactersInRange:aRange withString:aRepString];
if([newStr length]>0 && /*otherStringLength > 0*/)
//enable
else
//disable
return YES;
}
But I think the most common way is to use the didEndEditing
-method但我认为最常见的方法是使用
didEndEditing
-方法
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.