簡體   English   中英

操作方法:當UITextView不在視圖時隱藏鍵盤?

[英]How To: hide keyboard when UITextView is out of view?

我把一些UITextViews放在帶有自定義單元格的UITableView(Controller)中,我遇到了一個問題。 用戶可以在導航欄中點擊“編輯”按鈕將表格設置為編輯模式 - 每個自定義單元格都有自己的方式啟用其各個UITextViews進行文本輸入。 這很好。

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

我已經完成了我能想到的每一個排列,以便讓第一響應者辭職,但在我看來,隱藏的textview不會獲取/發送任何消息(甚至任何委托方法),直到它重新開啟到屏幕或其他一些文本視圖獲得焦點。

我錯過了什么?

在這一天的大部分工作中,這是我學到的:

  1. 您實際上無法訪問UITableView中的視圖外單元格。 我想這有道理,雖然令我感到沮喪
  2. 即使您指向特定行中的特定單元格,也不會重繪或嘗試手動重新設置第一響應者的數量。
  3. setEditing:animated :(當你點擊“完成”按鈕時調用)不是唯一發生的事情
  4. 我猜想UITextView保持編輯模式的原因是因為單元的緩存版本處於編輯模式,並且這些各種表方法都沒有調用緩存的單元格/數據(比如setEditing:animated :)

這是我找到的解決方案:(在UISearchBar和resignFirstResponder ):
*調用[self.tableView endEditing:YES]會導致所有視圖重新[self.tableView endEditing:YES]第一個響應者,這意味着我的UITextView不再被選中。 我不確定它為什么會這樣工作,但是出現setEditing:被發送到每個單元格並相應地重新繪制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM