如何在点击UITextField时打开UIDatePicker

时间:2014-02-22 15:09:06

标签: ios objective-c uitextfield uidatepicker

我的视图控制器包含三个名为“Name”,“Location”和“Birthday”的UITextField。

我这里有这个代码打开一个UIDatePicker:

// Open date picker
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {

    // Make a new view, or do what you want here
    UIDatePicker *pv = [[UIDatePicker alloc] initWithFrame:CGRectMake(0,245,0,0)];
    [self.view addSubview:pv];
    return NO;
}

我有两个问题。

问题1

当我点击任何字段时,会打开日期选择器。我只想在点击“生日”时打开日期选择器。

问题2

当我点击某个字段,然后再次点击时,它会打开另一个日期选择器。

如何阻止这种情况发生?

彼得

2 个答案:

答案 0 :(得分:4)

而是在viewDidLoad上尝试:

UIDatePicker *datePicker = [[UIDatePicker alloc] init];
birtdayTextField.inputView = datePicker; //birtdayTextField is your "birthday text field"

答案 1 :(得分:1)

要仅为特定的textField打开日期选择器,请在打开datePicker之前检查(UITextField *)textField。您可以为每个textField设置标记,然后使用该标记进行区分。

对于第二个问题,您需要使用resignFirstResponder