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 に答える