【发布时间】:2013-02-26 15:33:24
【问题描述】:
我有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 按钮中辞去FirstResponder
-(IBAction)doneButton:(UITextField *)sender {
NSLog(@"doneButton");
int row = [sender.superview.superview tag];
[(UITextField*)[(UITableViewCell *)sender.superview viewWithTag:200+row] resignFirstResponder];
}
我不知道如何从所有UITextFields 中退出键盘。如果有人有一些补救措施,我将不胜感激。
【问题讨论】:
-
这个答案可能对你有帮助:stackoverflow.com/questions/15063798/…
标签: iphone ios objective-c