2012-08-02 82 views
1

我希望虚拟键盘出现在加载的视图中,并且我希望它在视图的整个生命周期中都可见。有一个文本字段,我把它当作这个视图的主要控件。强制键盘变为可见并保持可见状态

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

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

我没有看到任何隐藏的问题,但是再次没有人推荐它。我错过了什么吗?这是一个坏方法吗?请帮忙。

+0

你可以做的是重载textfield的委托方法,以便它们不会自动调用[self resignFirstResponder]。如果你超载他们,那么键盘将永远保持直到你告诉它关闭。 – 2012-08-02 17:02:59

回答

0

在回顾我的老问题时,我想现在应该是一个很好的时机,为此提供一个答案。

它的工作原理并没有任何重大缺陷。

除了特殊情况之外,我已经用这种方法祝你好运。我用它在表视图单元格中设置一个文本字段作为主要响应者。在iOS 6中,当视图被压入导航控制器堆栈时,它没有加载键盘或突出显示文本框。

请参阅In iOS 6, -[UITextField becomeFirstResponder] doesn't work in -viewWillAppear:以解决该问题。

相关问题