Pergunta

I have UITextField. I set UIDatePicker as inputView for this UITextField

UITextField *dateField = [[UITextField alloc] init];
        dateField.frame = CGRectMake(30, 180, 260, 30);
        dateField.delegate = self;
        [self addSubview:dateField];

        UIDatePicker *datePicker = [[UIDatePicker alloc]init];
        [datePicker setDate:[NSDate date]];
        datePicker.frame = CGRectMake(0, 568 - 100, 320, 100);
        [datePicker addTarget:self action:@selector(updateTextField:) forControlEvents:UIControlEventValueChanged];
        [dateField setInputView:datePicker];

-(void)updateTextField:(id)sender
{
    NSLog(@"SENDER = %@", sender);
}

Is there any way to get UITextField inside updateTextField method

Foi útil?

Solução 2

Add this and create ivar currentTextField

- (void)textFieldDidBeginEditing:(UITextField *)textField {


     currentTextField = textField;


}

currentTextField in updateTextField will be your text filed

Outras dicas

Yes you can get reference to the textView like that:

-(void)updateTextField:(id)sender
{
    UIDatePicker *datePicker = (UIDatePicker*) sender;
    UITextField *dateField = (UITextField*)datePicker.inputView;
}

//Extended

Sorry my mistake I thought that you add text field as a input view to data picker. The other way you can do what you want is assign tag to your text view where you set up it:

UITextField *dateField = [[UITextField alloc] init];
dateField.frame = CGRectMake(30, 180, 260, 30);
dateField.tag = 10;
dateField.delegate = self;
[self addSubview:dateField];

And in your method updateTextField: you can access it like:

UITextField *dateField = (UITextField*)[self viewWithTag:10];
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top