[英]Disabled UIButton dependant on 4 UITextFields
我有 4 個 UITextFields 我用來保持 2 個 UIButtons 禁用,直到所有 4 個字段都輸入了數據。 到目前為止我有以下代碼
- (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 {
}
}
我對此有很多問題:-
任何人都可以幫助解決這些問題嗎?
記錄字段長度的代碼如下:-
#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;
}
它對所有 4 個字段都遵循相同的格式,但是當我輸入一個字符時,NSlog 結果為 0,然后第二個字符為 1,依此類推。
只需使用另一個委托方法。
要么使用: textFieldDidEndEditing:
就像氪星在評論中告訴你的那樣
或使用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;
}
但我認為最常見的方法是使用didEndEditing
-方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.