[英]dismiss iPhone keyPad in dynamic UITableView
我有两个部分的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];
}
然后我想在“完成”按钮中退出FirstResponder
-(IBAction)doneButton:(UITextField *)sender {
NSLog(@"doneButton");
int row = [sender.superview.superview tag];
[(UITextField*)[(UITableViewCell *)sender.superview viewWithTag:200+row] resignFirstResponder];
}
我没有更多的想法如何从所有UITextFields
退出键盘。 如果有人可以补救,我将不胜感激。
您对endEditing:
的使用非常接近。 与其发送endEditing:
到文本字段的实例, endEditing:
尝试将其发送到主视图。 例如:
[self.view endEditing:YES];
endEditing:
可以直接发送到文本字段实例,也可以发送到视图,如果是后者,则任何正在编辑的文本字段(即您指定的视图的子视图)都将退出第一响应者。
从文档:
使视图(或其嵌入式文本字段之一)退出第一响应者状态
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.