[問題] UITextField 在 reuse 的UITableViewCell

看板MacDev作者 (崽子兔)時間12年前 (2013/04/06 23:52), 編輯推噓0(006)
留言6則, 4人參與, 最新討論串1/1
大家好, 我今天遇到一個iOS的問題 我有一個UITableView,我希望在使用者點了Section的UIView中的UIButton後會新增 一個內建UITextField的UITableViewCell在那個Section下,並且becomeFirstResponder。 奇怪的點是,打開這個ViewController後,第一次操作會正常新增Cell並且 becomeFirstResponder(出現鍵盤),然後我不管是 1) 再點一次其他Section的Button後,原本的TableViewCell消失,換另一個Section新增 一個Cell 2) resignFirstResponder後 reloadData 讓原本的Cell消失,然後再點Button新增Cell 都不會再成功出現鍵盤,也就是只有第一次可以成功。 我有想過是不是因為是dequeueReusableCellWithIdentifier所以造成的問題,因此我把 第二次之後的操作加上把原本的UITextField移除,然後重新new一個新的UITextField再 加回去,但是這樣也一樣不會出現鍵盤。 可是用手指去點那個地方還是會出現鍵盤,也就是只有becomeFirstResponder不成功,但 第一次卻會成功 (而且只有這TableViewCell裡面的會失敗,在同樣地方使其他Field becomeFirstResponder就沒有問題) 這問題我目前不用dequeueReusableCell,而直接重新建立UITableViewCell來解決了, 但是我還是想知道原因在哪裡,麻煩高手們能解除我的疑惑,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.177.130

04/07 01:58, , 1F
會不會是cell被reuse然後還沒放掉becomeFirstResponder
04/07 01:58, 1F

04/07 14:24, , 2F
我有想到這可能,所以我有試著用UIKeyboardDidHide的
04/07 14:24, 2F

04/07 14:24, , 3F
Notification等鍵盤消失後再ReloadData,不過還是...
04/07 14:24, 3F

04/07 23:35, , 4F
如果你先別call resignfirstresponder呢
04/07 23:35, 4F

04/08 00:21, , 5F
與其講一大串為什麼不弄一個簡單的 project 重現問題...
04/08 00:21, 5F

04/08 09:18, , 6F
推樓上! 因為這樣我們只能瞎子摸象 聽起來不合理
04/08 09:18, 6F
文章代碼(AID): #1HO4IljY (MacDev)
文章代碼(AID): #1HO4IljY (MacDev)