[英]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.