我在UITableView单元格中有一个UITextView。编辑后,我无法让键盘始终如一地辞职。检测DidEndEditing无效。将我自己的“完成”按钮添加到工具栏会带来间歇性结果。建议吗? (注意:这是UITextView而不是UITextField。谢谢)
答案 0 :(得分:0)
完成编辑后,您是否关闭了表格视图的控制器?我遇到了一个非确定性的崩溃,当执行[textView resignFirstResponder]
加上一个调用(类似[self doneClicked:nil]
)会解除托管UITableView的视图控制器时发生。
它将释放UITextView,当调用返回到发起didEndEditing
调用的UITextView方法时,它会崩溃或行为不一致(因为视图已被释放)..
解决方案是在延迟一段时间后调用所有内容:
[self performSelector:@selector(doneClicked:) withObject:nil afterDelay:0.5]
答案 1 :(得分:0)
将textview添加到单元格中:
cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifier] autorelease];
}
managedTextView = [[[UITextView alloc] initWithFrame:CGRectMake(7,8,260, 30)] autorelease];
managedTextView.delegate = self;
managedTextView.scrollEnabled = YES;
managedTextView.autoresizingMask = UIViewAutoresizingFlexibleHeight;
managedTextView.text=thought.managedthought;
[cell.contentView addSubview: managedTextView];
cell.accessoryType = UITableViewCellAccessoryNone;
完成按钮代码:
- (void)saveTextView:(id)sender
{
[managedTextView resignFirstResponder];
UIBarButtonItem *saveButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSave target:self action:@selector(save:)];
self.navigationItem.rightBarButtonItem = saveButton;
[saveButton release];
...
}
(保存整个UITableViewController时使用“new”保存按钮)