12

UITextFieldキーボードのアニメーションなしでファーストレスポンダになる方法はありますか? つまり、キーボードだけが表示されるようにしますか?

基本的に、私はを持っている に1 秒プッシュUIViewControllerしています。その 2 番目のビュー コントローラーがスタックからポップされたとき、2 番目のビュー コントローラーがポップされたときにユーザーが気付かないように、すぐにファーストレスポンダー ステータスを取得したいと考えています。テキスト フィールドはファーストレスポンダーではありませんでした。UIViewControllerUITextFieldUITextField

現在、キーボードがポップされたときにキーボードが画面にアニメーション表示されるようにしていますが、それが表示されないようにします。

何か案は?

4

4 に答える 4

17

そのようにUIViewアニメーションを使用できます

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.0];
[UIView setAnimationDelay:0.0];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];

[textField becomeFirstResponder];  // <---- Only edit this line

[UIView commitAnimations];

これにより、キーボードが突然表示されます。

同じことができますが、-resignFirstResponder

スイフト..

    UIView.beginAnimations(nil, context: nil)
    UIView.setAnimationDuration(0.0)
    UIView.setAnimationDelay(0.0)
    someTextView.resignFirstResponder()
    UIView.commitAnimations()
于 2012-08-11T20:00:45.443 に答える
1

-viewDidAppearフィールドがステータスを失ったことにユーザーが気付かないようにするために、最初の応答者として設定するだけです。

-(void)viewWillAppear:(BOOL)animated {
    if ([self isViewLoaded] && self.textField)
        [self.textField becomeFirstResponder];
        [super viewWillAppear:animated];
}

必要に応じて、このコードを使用した短いサンプル プロジェクトをDropboxにアップロードしました。

于 2012-08-11T20:03:52.123 に答える
0

私は、あなたがどのiOSバージョンを使用しているか、またはどの時点で電話をかけているか確信してbecomeFirstResponder[textFieldReference becomeFirstResponder]ますviewWillAppear:.

ビューコントローラーがビューを表示する直前に呼び出され(ビューコントローラー階層を手動で処理しない場合)、ナビゲーションコントローラーに表示されるとすぐにキーボードが表示され、テキストフィールドにフォーカスがあります。

そうは言っても、私が聞いたところでは、キーボードの外観スタイルを指定できる公的な方法はありません。

于 2012-08-11T20:06:52.477 に答える