为什么UIBarButtonItem在UIToolbar中没有获得点击设置为UITextField的inputAccessoryView? [英] Why UIBarButtonItem not getting clicks in UIToolbar set as inputAccessoryView of UITextField?
问题描述
UIBarItem不会响应UIToolbar中的点击,该点击在UITextField上设置为inputAccessoryView。
此按钮不会显示点击动画我试着点击它,回调不会被调用。
我的设置如下:
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:)];
向工具栏添加按钮,并将工具栏设置为 inputAccessoryView
UITextField
:
add button to toolbar and set toolbar as inputAccessoryView
of UITextField
:
[self.datePickerToolbar setItems:@[doneBtn] animated:NO];
self.closeDateTextField.inputAccessoryView = self.datePickerToolbar;
}
当我点击 closeDateTextField
键盘在工具栏中显示一个完成
按钮,但按钮不响应点击, hidePicker:
不被调用。
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?
推荐答案
我只是试过下面的代码,它的工作很好。测试在iOS 6& 7模拟器。
I just tried the following code and it worked just fine. Tested on both iOS 6 & 7 simulator.
@interface HSViewController
@property (weak, nonatomic) IBOutlet UITextField *closeDateTextField;
@property (strong, nonatomic) UIToolbar * datePickerToolbar;
@end
@implementation HSViewController
- (void)viewDidLoad
{
NSLog(@"%s", __PRETTY_FUNCTION__);
[super viewDidLoad];
self.datePickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
UIBarButtonItem * doneBtn =
[[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemDone
target:self
action:@selector(hidePicker:)];
[self.datePickerToolbar setItems:@[doneBtn] animated:NO];
UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 320, 120)];
textField.backgroundColor = [UIColor greenColor];
[self.view addSubview:textField];
self.closeDateTextField = textField;
self.closeDateTextField.inputAccessoryView = self.datePickerToolbar;
}
- (void)hidePicker:(id)sender {
NSLog(@"%s", __PRETTY_FUNCTION__);
[self.closeDateTextField resignFirstResponder];
}
@end
这篇关于为什么UIBarButtonItem在UIToolbar中没有获得点击设置为UITextField的inputAccessoryView?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!