UIBarItem does not respond to clicks inside UIToolbar which is setup as inputAccessoryView on a UITextField.
The button does not show click animation when I try to click it, callback does not get called. My setup looks like:
@interface MyViewController()
@property (weak, nonatomic) IBOutlet UITextField *closeDateTextField;
@property (strong, nonatomic) UIToolbar * datePickerToolbar;
@end
I setup toolbar with button:
- (void)viewDidLoad {
self.datePickerToolbar = [[UIToolbar alloc] init];
UIBarButtonItem * doneBtn =
[[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemDone
target:self
action:@selector(hidePicker:)];
add button to toolbar and set toolbar as inputAccessoryView
of UITextField
:
[self.datePickerToolbar setItems:@[doneBtn] animated:NO];
self.closeDateTextField.inputAccessoryView = self.datePickerToolbar;
}
When I click on closeDateTextField
the keyboard appears with a Done
button in toolbar but the button does not respond to click, the hidePicker:
does not get called.
- (void)hidePicker:(id)sender {
[self.closeDateTextField resignFirstResponder];
}
Any idea what I'm doing wrong?
I just tried the following code and it worked just fine. Tested on both iOS 6 & 7 simulator.
self.datePickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 43)];
It worked with me when I did the toolbar height less than 44. 43 for an example
when it was 44 it crashes
Instead of setting the
UIToolbar
frame you should only set itsautoresizingMask
:This way you'll have the expected behavior while being device/orientation independent.