我有UITableView
两个部分。第一部分是带有步进器的静态行,可创建第二部分的单元格。第二部分的每个单元格都包含UITextField
带键盘。我可以使用键盘或键盘中的附加完成按钮关闭键盘UITapGestureRecognizer
,但它仅适用于最后一个单元格。我尝试了以下方法:
UITapGestureRecognizer
在表格视图中
在我的ViewDidLoad
我放:
UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(hideKeyboard)];
[self.tableView addGestureRecognizer:gestureRecognizer];
进而
-(void)hideKeyboard{
[self.tableView resignFirstResponder];
}
或者
-(void)hideKeyboard:(UITapGestureRecognizer*)sender{
[self.cellText endEditing:YES];
}
- 使用标签来识别我正在编辑的文本字段。
在
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath I added
[cellText addTarget:self action:@selector(myNumberValueBeginEditing:) forControlEvents:UIControlEventEditingDidBegin];
并且在
-(void)myNumberValueBeginEditing:(UITextField *)sender
{
int row = [sender.superview.superview tag];
UITextField *cellTemp = (UITextField*)[(UITableViewCell *)sender.superview viewWithTag:200+row];
cellTemp.delegate = self;
[cellTemp becomeFirstResponder];
}
然后我试图在 DONE 按钮中 resignFirstResponder
-(IBAction)doneButton:(UITextField *)sender {
NSLog(@"doneButton");
int row = [sender.superview.superview tag];
[(UITextField*)[(UITableViewCell *)sender.superview viewWithTag:200+row] resignFirstResponder];
}
我没有更多的想法如何从所有人中退出键盘UITextFields
。如果有人有一些补救措施,我将不胜感激。