1

问题是从 UIDatePicker 选择日期后,UIAlertView 的“确定”按钮被禁用。我试过了,但没有运气。

-(BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertView 

每当我们在文本字段中输入任何内容时都应该调用它,但是当输入日期时它不会被调用,但是如果我从键盘输入任何内容,那么就可以了。

在此处输入图像描述

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(indexPath.section == 0 && indexPath.row == 1)
       {
        alertView1 = [[UIAlertView alloc] initWithTitle:nil message:nil delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Done",nil];
        alertView1.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput;
        alertView1.tag=1;
        alertText = [alertView1 textFieldAtIndex:0];
        itemText = [alertView1 textFieldAtIndex:1];
                alertText.inputView=datePicker;
        itemText.inputView=secondPicker;
        [datePicker addTarget:self action:@selector(firstTF) forControlEvents:UIControlEventValueChanged];
        [secondPicker addTarget:self action:@selector(secondTF) forControlEvents:UIControlEventValueChanged];
        [alertText setPlaceholder:@"From Date"];
        [itemText setPlaceholder:@"To Date"];
        itemText.secureTextEntry = NO;
        [alertView1 show];
}

- (void)firstTF
{
    NSDate *date = datePicker.date;
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc]init];
    [dateFormat setDateStyle:NSDateFormatterMediumStyle];
    alertText.text = [dateFormat stringFromDate:date];
}

- (void)secondTF
 {
    NSDate *date = secondPicker.date;
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc]init];
    [dateFormat setDateStyle:NSDateFormatterMediumStyle];
    itemText.text = [dateFormat stringFromDate:date];
 }


- (BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertView
 {
    NSString *inputText = [[alertView textFieldAtIndex:0] text];

    if( [inputText length] > 0)
    {
         NSLog(@"alertViewShouldEnableFirstOtherButton: was called!");
         return YES;
    }
    else
    {
        return NO;
    }
}
4

1 回答 1

0

这是因为在您将文本输入到文本字段之前调用了“alertViewShouldEnableFirstOtherButton”。根据您的情况,方法“完成”按钮将被禁用。删除此方法,您将实现目标。

于 2014-07-21T11:42:09.020 回答