【发布时间】:2014-01-09 21:57:12
【问题描述】:
我有一个UIPageViewController。一页有一个按钮,另一页有一个带有按钮的UITextField。当页面滚动到带有字段的视图时,我希望它到becomeFirstResponder 并打开键盘。以下是发生的事情:
我调用
[self.locationQuery becomeFirstResponder]ViewController 的viewDidAppear方法。但它永远不会打开键盘。我在
viewWillAppear中也这样做了,它会短暂出现,但很快就会消失。如果我在带有文本字段的页面上,然后将页面拉到一半然后放开(不更改页面),
self.locationQuery就可以很好地获得焦点。
似乎有其他东西正在从该字段中获取 firstResponder 状态,但我完全不知道是什么,以及为什么它只会在页面更改时发生(而不是在翻页失败后显示)。有什么想法吗?
更新
我创建了一种爬取视图的方法,以查看是否有任何其他视图确实采用了 firstResponder(来自此问题的答案:Get the current first responder without using a private API)。结果:
当我明确地为文本字段提供第一响应者时,该方法报告它具有第一响应者状态。
如果我不这样做,它会返回
null。
现在我更加困惑了。
【问题讨论】:
标签: objective-c uipageviewcontroller first-responder