Reputation: 750
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
Upvotes: 2
Views: 1791
Reputation: 25459
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];
Upvotes: 2
Reputation: 4817
Add this and create ivar currentTextField
- (void)textFieldDidBeginEditing:(UITextField *)textField {
currentTextField = textField;
}
currentTextField in updateTextField will be your text filed
Upvotes: 1