2011-04-15 95 views
3

我已經把一些UITextViews放在UITableView(控制器)中,並且自定義單元格,並且遇到了問題。用戶可以點擊導航欄中的「編輯」按鈕將表格設置爲編輯模式 - 每個自定義單元格都有其自己的方式來啓用其單獨的UITextView以進行文本輸入。這工作正常。如何:當UITextView不在視圖中時隱藏鍵盤?

我遇到的問題是,如果焦點是在用戶點擊「完成」時滾動出視圖的文本視圖,則鍵盤保持不變,並且文本視圖保持編輯模式。如果textview在視圖中不會發生這種情況。更具體地說 - 我所看到的單元位於屏幕的頂部,如果它滾動到iPhone屏幕上方,就會顯得很有趣。當表格底部的textview滾動時,我似乎沒有同樣的問題。

我已經做了幾乎所有可以想到的視圖來讓第一響應者辭職,但是在我看來,隱藏的textview並沒有獲取/發送任何消息(甚至是任何委託方法),直到它重新回到屏幕上或者其他文本視圖獲得焦點。

我缺少什麼?

回答

1

這方面的工作了一整天的大部分時間後,這是我學到了什麼:

  1. 你不能真正進入 亂視細胞的UITableView。我猜 這是有道理的,但令人沮喪的 在我的情況
  2. 重繪或試圖 手動辭職第一響應者沒有量 要幫助,甚至當你指出 到特定的細胞在特定的 一行。
  3. setEditing:animated :(當你點擊「完成」按鈕時調用)並不是唯一發生的事
  4. 我會猜測UITextView保持編輯模式的原因是因爲緩存版本的所述細胞在編輯模式和高速緩存單元/數據不是由這些各種表的方法稱爲(如setEditing:動畫:)

這是我找到了解決辦法:(在UISearchBar and resignFirstResponder):
*主叫[self.tableView endEditing:YES]導致所有視圖退出第一響應者,這意味着我的UITextView不再被選中。我不知道它爲什麼這樣工作,但出現setEditing:被髮送到相應重繪的每個單元格&。