0

私は、1 つのセクションと 5 つのセル、および各 tableCell に 2 つの異なる uitextfields を持つ uitableview を使用しています。

私の問題は、ユーザーが最初のテーブル行の最初のテキストフィールドをタブで押すと、キーボードが表示され、ユーザーが2番目のテキストフィールドをタップすることです。キーボードのDISMISSとSHOW。

ユーザーがテキストフィールドにフォーカスを切り替えるときに、DISMISS と SHOW の代わりにキーボードを維持するにはどうすればよいですか?

ありがとう。

最初の編集: これに関する応答が遅くなって申し訳ありません。コードはここに表示するのが少し複雑です。textField デリゲート メソッドのいずれかで、resignFirstResponder/becomeFirstResponder を使用しません。あなたの頭の上に何かアイデアを投げ込んでいただけますか?ご助力いただきありがとうございます。

2番目の編集: 私の悪い間違いで申し訳ありません。私は自分の問題を完全に誤解していました。すぐに新しい投稿をここに再リンクします。

3番目の編集: これは私の新しい質問です

4

2 に答える 2

1

通常、フィールドを切り替えても、キーボードは自動的に閉じません。
テキストフィールド デリゲートを使用していて、"editingDidEnd" に ResigningFirstResponder で応答している場合は、その動作が見られます。

その場合、フィールドを離れた後、メソッドの 1 つを呼び出してキーボードを再呼び出しし、他のフィールドに触れると、firstResponder を呼び出します。

そのため、テキストフィールド デリゲートを設定してテキストフィールド セレクター メソッドの 1 つを呼び出すコードを探します。呼び出されているメソッドを見つけて、resigingFirstResponder であるかどうかを確認します。

そうである場合は、それを削除するか、適切なロジックでラップする必要があります。

于 2012-09-10T16:48:57.287 に答える
1

これはうまくいくはずです...コードを投稿していないので、私の側からの推測です:

-(BOOL)textFieldShouldReturn:(UITextField *)textField 
{
    if(textField == firstTextfield)
    {
        if([[firstTextfield stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length] == 0)
        return NO;

        [firstTextfield resignFirstResponder];
        [secondTextField becomeFirstResponder];

        return YES;
     }

     else if(textField == secondTextField)
     {
         //Anything u want here
         return YES;
     }
    return NO;
 }
于 2012-09-10T15:42:44.240 に答える