首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编辑时尝试使用UITextField becomeFirstResponder创建自定义becomeFirstResponder

编辑时尝试使用UITextField becomeFirstResponder创建自定义becomeFirstResponder
EN

Stack Overflow用户
提问于 2012-01-20 18:38:41
回答 1查看 906关注 0票数 1

我有一个带有自定义UITableViewControllerUITableViewCell,其中包含一个UITextField。当将表视图切换到编辑模式时,我在表的底部添加一个新的单元格,并希望使此单元格becomeFirstResponder。我的tableView:cellForRowAtIndexPath:方法检查这个底部单元格,所以我只添加了一行:

cell.theTextField becomeFirstResponder;

我觉得应该能行。但是,当第一次显示表视图时,它似乎无法工作。但是如果我选择了单元格(使它成为第一个响应程序),然后退出编辑模式(在我的代码中导致了一个resignFirstResponder ),我就可以回到编辑模式,神奇地它会像我所期望的那样成为第一个响应者!

请注意,即使我在结束编辑模式时选择了不同的单元格(它们都有文本字段),并且退出了编辑模式,那么它仍然工作,只要在某个时候已经做了最后一个单元格becomeFirstResponder (通过选择它)。

所以,我的猜测是,当它第一次成为第一个响应者的时候,会有一些东西在表视图中被设置,或者是一些原本没有设置的地方,从那时起,它就完成了这个工作。

有人对这里发生了什么事有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2012-01-20 19:04:02

第一个becomeFirstResponder调用失败,因为单元格还没有超级视图。表视图在从tableView:cellForRowAtIndexPath:返回单元格后将其作为其子视图添加。我建议你到别的地方打这个电话。如果您已经有了一个定制的UITableViewCell子类,您可以实现didMoveToWindow:并在那里调用[self becomeFirstResponder]

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8946230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档