作者rabbithenry (崽子兔)
看板MacDev
標題[問題] UITextField 在 reuse 的UITableViewCell
時間Sat Apr 6 23:52:12 2013
大家好,
我今天遇到一個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
1F:→ charlesdc:會不會是cell被reuse然後還沒放掉becomeFirstResponder 04/07 01:58
2F:→ rabbithenry:我有想到這可能,所以我有試著用UIKeyboardDidHide的 04/07 14:24
3F:→ rabbithenry:Notification等鍵盤消失後再ReloadData,不過還是... 04/07 14:24
4F:→ benck:如果你先別call resignfirstresponder呢 04/07 23:35
5F:→ uranusjr:與其講一大串為什麼不弄一個簡單的 project 重現問題... 04/08 00:21
6F:→ charlesdc: 推樓上! 因為這樣我們只能瞎子摸象 聽起來不合理 04/08 09:18