2012-08-02 121 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:以解決該問題。

相關問題