我在分組的UITableView中有3個UITextFields,並且試圖找出正確的邏輯,只有在UITextFields都爲空時才啓用「保存」UIBarButtonItem。如果多個UITextFields全部填充,請啓用UIBarButtonItem
我目前使用- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
UITextField委託方法來檢測字符逐字符的變化,但它提供了不一致的結果。
任何想法?
編輯:這是我現在使用的代碼。正如你所看到的,我已經將我的文本字段放入一個數組中,所以我可以遍歷它們。現在,直到我輸入第三個字段中的第二個字符,保存按鈕纔會啓用。此外,它會交替啓用/禁用,從字段中逐個刪除字符。
NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
BOOL allValid;
if (newString.length)
{
// Cycle through array checking for completeness
for (int i = 0; i < [textFieldArray count]; i++)
{
if ([[[textFieldArray objectAtIndex:i] text] length] > 0)
{
allValid = YES;
NSLog(@"TextField #%i Validates.", i);
}
else
{
allValid = NO;
NSLog(@"TextField #%i Does Not Validate.", i);
}
}
}
else
{
NSLog(@"Invalid");
allValid = NO;
}
if (allValid)
[saveButton setEnabled:YES];
else
[saveButton setEnabled:NO];
return YES;
我更新了我的問題,以澄清我正在嘗試做什麼。 – 2010-04-15 00:34:13