我不想显示键盘,而是想在选择文本字段时显示弹出窗口视图(我的代码位于底部)。如果键盘未显示,则一切正常。但是,如果显示键盘然后选择文本字段,则键盘不会消失,第一个响应者一定在某个地方迷路了,但我不知道在哪里。有人有解决办法吗?
我的文本字段:
self.startDateTextField = [[UITextField alloc] initWithFrame:CGRectMake(79, 148, 138, 27)];
[self.startDateTextField setBorderStyle:UITextBorderStyleRoundedRect];
[self.startDateTextField setDelegate:delegate];
[self.startDateTextField addTarget:delegate action:@selector(editStartDate:) forControlEvents:UIControlEventEditingDidBegin];
[popoverWrapper addSubview:self.startDateTextField];
and in editStartDate:
I have:
-(void)editStartDate:(UITextField *)textField {
[textField resignFirstResponder];
DatePickerVC *datePickerVC = [[DatePickerVC alloc] init];
datePickerVC.delegate = self;
self.popoverController = [[UIPopoverController alloc] initWithContentViewController:datePickerVC];
[self.popoverController setDelegate:self];
[self.popoverController presentPopoverFromRect:CGRectMake(0, 0, 5, 5) inView:textField permittedArrowDirections:UIPopoverArrowDirectionRight animated:YES];
}
这很容易做到,使用 UITextFieldDelegate 方法,特别是 UITextFieldShouldBeginEditing 并返回 NO 并执行代码来显示弹出窗口。这样键盘就不会从一开始就显示出来。
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
[self.view endEditing:YES]; // added this in for case when keyboard was already on screen
[self editStartDate:textField];
return NO;
}
为了使其正常工作,请确保将 textField 的委托设置为 self (视图控制器),并在 editStartDate 方法中删除 resignFirstResponder 调用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)