作者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