Ios 带UIToolbar的UIDatePicker

Ios 带UIToolbar的UIDatePicker,ios,objective-c,uitoolbar,uidatepicker,Ios,Objective C,Uitoolbar,Uidatepicker,我试图在UIDatepicker上实现UIToolbar,以便在触摸“完成”按钮时关闭它。但当我点击按钮时,日期选择器正在滚动,而动作按钮不起作用 这是我的代码: datepicker = [[UIDatePicker alloc] initWithFrame:CGRectZero]; [datepicker setDatePickerMode:UIDatePickerModeDate]; [datepicker addTarget:self action:@selector(changeDat

我试图在UIDatepicker上实现UIToolbar,以便在触摸“完成”按钮时关闭它。但当我点击按钮时,日期选择器正在滚动,而动作按钮不起作用

这是我的代码:

datepicker = [[UIDatePicker alloc] initWithFrame:CGRectZero];
[datepicker setDatePickerMode:UIDatePickerModeDate];
[datepicker addTarget:self action:@selector(changeDate:) forControlEvents:UIControlEventValueChanged];

UIToolbar *toolbar= [[UIToolbar alloc] initWithFrame:CGRectMake(0,0,self.view.frame.size.width,44)];
toolbar.barStyle = UIBarStyleDefault;
UIBarButtonItem *flexibleSpaceLeft = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem* doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(dismiss)];

[toolbar setItems:[NSArray arrayWithObjects:flexibleSpaceLeft, doneButton, nil]];
[datepicker addSubview:toolbar];
我的约会选择者:

datepicker = [[UIDatePicker alloc] initWithFrame:CGRectZero];
[datepicker setDatePickerMode:UIDatePickerModeDate];
[datepicker addTarget:self action:@selector(changeDate:) forControlEvents:UIControlEventValueChanged];

UIToolbar *toolbar= [[UIToolbar alloc] initWithFrame:CGRectMake(0,0,self.view.frame.size.width,44)];
toolbar.barStyle = UIBarStyleDefault;
UIBarButtonItem *flexibleSpaceLeft = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem* doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(dismiss)];

[toolbar setItems:[NSArray arrayWithObjects:flexibleSpaceLeft, doneButton, nil]];
[datepicker addSubview:toolbar];


谢谢您的帮助。

如果您使用UITextField set

textField.inputAccessoryView = toolbar;
textField.inputView = datepicker;

您必须将
inputAccessoryView
InputView
设置为您的
UITextField

txtField.inputAccessoryView = toolBar;
txtField.inputView = datePickerView;

试试这个
[self.view addSubview:toolbar]

picker = [[UIDatePicker alloc] init];
picker.autoresizingMask = UIViewAutoresizingFlexibleWidth;
picker.datePickerMode = UIDatePickerModeTime;

[picker addTarget:self action:@selector(dueDateChanged:) forControlEvents:UIControlEventValueChanged];
//CGSize pickerSize = [picker sizeThatFits:CGSizeZero];
picker.frame =  CGRectMake(0.0, self.view.frame.size.height - 250, self.view.frame.size.width, 250);
picker.backgroundColor = [UIColor whiteColor];

toolbar= [[UIToolbar alloc] initWithFrame:CGRectMake(0,self.view.frame.size.height - 294,self.view.frame.size.width,44)];
toolbar.barStyle = UIBarStyleDefault;
UIBarButtonItem *flexibleSpaceLeft = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

UIButton* infoButton = [UIButton buttonWithType: UIButtonTypeInfoLight];
[infoButton addTarget:self action:@selector(dismiss) forControlEvents:UIControlEventTouchDown];

UIBarButtonItem* doneButton =[[UIBarButtonItem alloc]initWithCustomView:infoButton];



[toolbar setItems:[NSArray arrayWithObjects:flexibleSpaceLeft, doneButton, nil]];


[self.view addSubview:toolbar];


[self.view addSubview:picker];

您是否实施了
disclose
方法?