将UITextView作为第一响应者重新签名后,表视图单元格不可选

时间:2017-12-07 00:10:28

标签: ios objective-c uitableview

我在UITableViewCell中有一个UITextView。我选择单元格时将其设置为第一响应者:

TPNTableViewCell *thisCell = (TPNTableViewCell *)[tblMain cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];

thisCell.txtHidden.text=@"";
[thisCell.txtHidden becomeFirstResponder];

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(goAwayKeyboard)];
[self.view addGestureRecognizer:tap];

因此,当选择单元格时,txtHidden成为第一响应者。然后当您单击键盘时触发选择器goAwayKeyboard。

-(void)goAwayKeyboard
{
    TPNTableViewCell *thisCell = (TPNTableViewCell *)[tblMain cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
    [thisCell.txtHidden resignFirstResponder];
}

这样可行,但是在键盘重新签名后,我无法再在表格视图中选择一个单元格。我可以滚动表视图,但单元格不可选,我无法找出原因。

2 个答案:

答案 0 :(得分:0)

点击手势识别器可能会在添加到视图后吞下所有触摸事件。也许在-goAwayKeyboard中删除它可以恢复触摸交互。

答案 1 :(得分:0)

您应该在离开键盘时禁用点击手势,您可以借助以下代码

来执行此操作
tap.enabled = NO;