2

このコード行は、私の電子メール textField の editDidEnd のときに実行されます。NSLog が実行されるので、関数が実行されていることがわかりますが、キーボードはまだ消えません。textBox をデリゲートとして接続しました。ストーリーボードの接続があることを確認しました。まだまだ変わりません。ヘルプ。ありがとう。

- (IBAction)emailDone2:(id)sender
{
    [_email resignFirstResponder];
    NSLog(@"emailDone2");
}

編集* *指示どおりにコードを変更しましたが、これはまだ何もしません。何も変わっていません。

- (IBAction)emailDone2:(id)sender
{
    [self.view endEditing:TRUE];
}
4

2 に答える 2

4

問題は、あなたが考える第一対応者と一対応者が同じではない可能性があることです。幸いなことに、これを修正する方法がすでにあります。使ってみて

[topView endEditing:YES];

ここで、topView は最上位のビューです。endEditing は、サブビューを再帰的に検索し、ファーストレスポンダーであるサブビューを見つけて、ファーストレスポンダーを辞任するように伝えます。これは、どのサブビューがそれを持っているかを追跡するよりもはるかに簡単です。

サイドバーでこの質問にリンクされている、resignFirstResponder に応答しないキーボードでこれを見つけました。

于 2014-03-04T01:45:44.190 に答える