我正在创建一个使用tableView的应用程序,其中TextView作为Cell。并且它会在tableView的页脚上添加更多单元格。
现在我想在textView完成编辑时重新加载表。为此我将[tblView reloadData]放在textViewShouldEndEditing中,但此时表格没有重新加载。
请帮帮我。
答案 0 :(得分:0)
请UITextView
Delegate Methods
使用NSLog
后try
Delegate Method
UITextView
{/ 1}}来确保-(void)textViewDidEndEditing:(UITextView *)textView {
[textView resignFirstResponder];
[self performSelector:@selector(reloadTableViewData) withObject:nil afterDelay:0.3];
}
- (void)reloadTableViewData {
[self.tableView reloadData];
}
{{1}}正在通话。
{{1}}
答案 1 :(得分:0)
您需要验证textView.delegate是否设置为实现textViewShouldEndEditing的类的实例。如果TextView位于UITableViewCell子类中,那么您可能将该子类设置为UITextView的委托,而实际上您已在包含tableView的视图控制器上实现了委托方法。
一种方法是:
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath {
MyCustomCellSubclass *cell = [tableView dequeueReusableCellWithIdentifier....];
cell.textView.delegate = self;
// do further cell customization if needed
return cell;
}
然后当你的单元格的textView完成时,它会回调到包含的视图控制器。
另外,根据您的描述,听起来您可能更喜欢委托方法:
- (void)textViewDidEndEditing:(UITextView *)textView;
而不是" shouldEndEditing",但对于您所描述的内容,这不是您当前的问题。
作为一个补充提示,如果你执行[tblView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewAnimationRowAutomatic]
,它将使用漂亮的小动画刷新tableview,而不是像reloadData那样重新加载硬件。
答案 2 :(得分:0)
首先确保您拥有自我视图的UITextView Delegate。像
UITextView.delegate = self ;
之后
- (BOOL)textFieldShouldReturn:(UITextView *)theTextField {
if (theTextField == TextView) {
[Tableview Reload];
}
return YES;
}
试试这个,让我知道。