简体   繁体   English

从inputView获取UItextField

[英]Get UItextField from inputView

I have UITextField . 我有UITextField I set UIDatePicker as inputView for this UITextField 我将UIDatePicker设置为此UITextField inputView

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 有什么办法可以在updateTextField方法中获取UITextField

Yes you can get reference to the textView like that: 是的,您可以像这样获得对textView的引用:

-(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: 在方法updateTextField中:您可以像这样访问它:

UITextField *dateField = (UITextField*)[self viewWithTag:10];

Add this and create ivar currentTextField 添加它并创建ivar currentTextField

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


     currentTextField = textField;


}

currentTextField in updateTextField will be your text filed updateTextField中的currentTextField将是您的文本字段

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM