【发布时间】:2011-07-23 20:49:32
【问题描述】:
我有一个模式窗口,用于从远程服务器搜索数据——它有一个 UITextField 作为窗口导航栏的 titleControl,以及一个填充窗口的表格视图(显然显示结果)。现在我想要做的是当用户滚动表格视图时,立即让文本字段失去焦点(辞职第一响应者),以便键盘关闭并且用户有更多空间滚动表格视图(它向下延伸以填补空白通过键盘)。与使用 UISearchDisplayController(或其他任何名称)时的功能基本相同。
所以我有这段代码来检测tableview的滚动事件:
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
[searchField resignFirstResponder];
}
效果很好。但是,问题在于,一旦用户滚动表格并且文本字段失去焦点,您就无法通过再次点击它来将焦点归还给它。所以基本上,一旦我调用[resignFirstResponser],我就再也无法恢复键盘并编辑文本字段值了。有人知道为什么吗?我是否需要在某个地方明确地调用[becomeFirstResponder]?因为我认为点击该字段时会自动处理?
另外值得注意的是,当第一次调用模态窗口时,我在文本字段上调用[becomeFirstResponder],因此该字段是预先聚焦的。会不会有什么关系?
如果有人愿意,我可以发布更多代码,但我不认为我在使用文本字段做任何不寻常的事情。
感谢您的帮助!
【问题讨论】:
标签: iphone uitableview uitextfield first-responder