我有UITableView
與自定義UITableViewCell
每個單元包含一個UILabel
和UITextField
如下所示。我在鍵盤頂部添加了一個Done
按鈕來隱藏鍵盤。resignFirstResponder問題與自定義UITableViewCell中的UITextField
現在假設第二行的文本框是firstResponder
,當時如果我滾動表視圖頂部,並從可見矩形搬出第二行。現在,如果我按Done
鍵然後方法被解僱,我使用[[self view] endEditing:YES];
應用程序崩潰。
爲了解決這個問題,我實現了下面的方法,並且我獲得了成功。
-(void)tableView:(UITableView *)tableView didEndDisplayingCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
for(UIView *contentView in [[cell contentView] subviews])
{
if([contentView isKindOfClass:[UIView class]])
{
for(UITextField *textField in [contentView subviews])
{
if([textField isKindOfClass:[UITextField class]] && [textField isFirstResponder])
{
[textField resignFirstResponder];
break;
}
}
}
}
}
現在的問題是,如果我這樣做,當第二排從可見光搬出矩形上面的方法被解僱,並預期鍵盤自動隱藏相同的情況。但在那時,當我將表視圖向下拖動並再次移動到可見矩形的第二行時,它的顏色發生了變化。
爲了解決這個問題的顏色我實現下面的方法,但它不工作
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
[cell setBackgroundColor:[UIColor clearColor]];
}
而且不但顏色問題。同樣,如果我觸摸到第二行鍵盤的textField顯示,並且如果我執行相同的方案tableView didEndDisplayingCell
方法不會觸發該單元格。即使我按了Done
關鍵應用程序崩潰。異常制動點指向[[self view] endEditing:YES];
並顯示錯誤
夥計們請幫幫我。我浪費了很多時間來弄清楚,但是我失敗了。
您能否顯示調用了[[[self view] endEditing:YES]'的全部方法? – matthisb
我調用了'[[self view] endEditing:YES];'用鍵盤連接的按鈕的觸摸事件 –