我的 iOS 键盘有问题。我在 UITableViewCell 中有一个 UITextField。在同一个 TableView 中点击另一个 TableViewCell 时,我想在显示 UIPopoverController 之前关闭键盘。所有这些都显示在表格中。
这是视图层次结构:
- 根视图控制器
UINavigationController
,显示为UIModalPresentationFormSheet
- 表视图控制器
- 表格视图单元格 1
- 文本域
- 表格视图单元格 2
- 点击时:
UIPopoverController
包含一个UIDatePicker
- 点击时:
- 表格视图单元格 1
- 表视图控制器
在此图中,我想tableView:didSelectRowAtIndexPath:
在显示UIPopoverController
. 这在 iPhone 上不是问题,因为我使用全屏模式视图控制器而不是弹出框控制器。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// nameTextField is the text field in Table View Cell 1
[nameTextField resignFirstResponder];
UITextField *tempTextField = [[UITextField alloc] initWithFrame:CGRectMake(10, 10, 100, 10)];
[self.view addSubview:tempTextField];
[self.view setNeedsDisplay];
tempTextField.enabled = NO;
[tempTextField becomeFirstResponder];
[tempTextField resignFirstResponder];
[tempTextField removeFromSuperview];
[self.view endEditing:YES];
KDDatePickerViewController *dpvc = [[KDDatePickerViewController alloc] init];
popoverController = [[UIPopoverController alloc] initWithContentViewController:dpvc];
[popoverController presentPopoverFromRect:[self.tableView cellForRowAtIndexPath:indexPath].frame
inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
}
从代码中可以看出,我尝试调用resignFirstResponder
and endEditing
,并尝试创建一个临时文本字段。我也尝试过实施disablesAutomaticKeyboardDismissal
,但从未被调用。
谁能看到我做错了什么?