1

我想让虚拟键盘在加载时出现在我的视图中,并且我希望它在视图的生命周期内可见。有一个文本字段,我将其视为该视图的主要控件。

最初,我按照我在这里得到[self.textField becomeFirstResponder]的建议打电话。-viewWillAppear:然后,我想出了一个不同的想法:我重载了 UIViewController 的-becomeFirstResponder.

- (BOOL)becomeFirstResponder
{
    if (self.primeResponder)
        return [self.primeResponder becomeFirstResponder];
    return [super becomeFirstResponder];
}

我没有看到任何隐藏的问题,但话又说回来,也没有人推荐它。我错过了什么吗?这是一个不好的方法吗?请帮忙。

4

1 回答 1

0

在回顾我的旧问题时,我认为现在是提供答案的好时机。

它有效并且没有任何主要缺点。

除了在特殊情况下,我对这种方法很幸运。我用它在表格视图单元格中设置一个文本字段作为主要响应者。在 iOS 6 中,当视图被推送到导航控制器堆栈时,它不会加载键盘或突出显示文本字段。

请参阅在 iOS 6 中,-[UITextField becomeFirstResponder] 在 -viewWillAppear: 中不起作用,以了解我对该问题的解决方案。

于 2013-01-23T15:51:54.090 回答