2009-12-05 24 views
1

我在UITableView單元格中有一個UITextView。我一直無法讓鍵盤在編輯後一致地辭職。檢測DidEndEditing沒有奏效。將我自己的「完成」按鈕添加到工具欄會帶來間歇性結果。建議嗎? (注意:這是UITextView而不是UITextField。謝謝)無法讓鍵盤與UITableViewCell中的UITextView一致地退出

+0

Canyou顯示您的代碼完成按鈕和添加的TextView到小區(以下簡稱「新」 Save按鈕保存整個的UITableViewController時使用)? – 2009-12-05 16:17:04

+0

下面的代碼 – user216661 2009-12-05 21:01:27

+0

@JoeCannatti我有類似的問題。我有一個保存按鈕頂部和使用resignFirstResponder,但它不起作用。它只從UITextView中刪除焦點(不隱藏鍵盤)。任何想法 – 2012-08-21 07:28:33

回答

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]; 
... 
} 

0

你完成編輯後是否關閉了表視圖的控制器?我遇到了一個非確定性崩潰,當執行[textView resignFirstResponder]加上一個調用(如[self doneClicked:nil])將會關閉託管UITableView的視圖控制器時發生。

這將釋放的UITextView當電話來了回UITextView的方法發起呼叫didEndEditing,它會崩潰或行爲不一致(自認爲已經被釋放)..

解決的辦法是打電話一些延遲後的一切:

[self performSelector:@selector(doneClicked:) withObject:nil afterDelay:0.5]

+0

我不確定這對我有用。 我有一個超載的「保存」按鈕的外觀。當用戶正在編輯UITextView時,該保存將關閉鍵盤並保存UITextView數據。在任何其他時間,「保存」按鈕將調用不同的功能來保存和解除。 – user216661 2009-12-05 18:51:18