我有一个这样的模式设置:
尽管看起来,前两个字段是 UITextFields,它们成为第一响应者并显示键盘。第三个“部门”项目是一个表格视图并推送另一个视图。
我已经实现了一个滚动视图,以便在编辑任一字段时,用户可以滚动并到达部门单元格:
当它被选中时,在推送之前,我想隐藏键盘。这是一个小细节,但请尝试在 Apple 的“日历”应用程序中添加一个新事件。它以第一个文本字段作为第一响应者打开(因此存在键盘)。如果您选择开始/结束单元格,则键盘会在下一个视图被按下时隐藏。
我如何实现这一目标?作为测试,我尝试过:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"hiding keyboard");
if ([ingredientName isFirstResponder]) {
NSLog(@"resigning name field");
[ingredientName resignFirstResponder];
}
else if ([ingredientAmount isFirstResponder]){
NSLog(@"resigning amount field");
[ingredientAmount resignFirstResponder];
}
}
日志记录确认这些正在被调用。但键盘并没有隐藏。当视图滑出时,它只是保持在原位。返回时,前一个字段仍然具有焦点(并且键盘不在)。
有任何想法吗?