3

フォームに 5 つの UITextField を追加しました。テキストフィールドの 1 つは、生年月日を入力するためのものです。したがって、デフォルトのキーボードを表示する代わりにその特定のテキストフィールドに触れた場合、日付ピッカーを表示する必要があります。

私は次のことを試しました:

- (void)textFieldDidBeginEditing:(UITextField *)textField{
   [textField resignFirstResponder];
   [self showDatePicker];//this is my own function to display datepicker.
}

この関数が呼び出されると、日付ピッカーが表示され、日付ピッカーとともにデフォルトのキーボードも表示され、日付ピッカーが非表示になります。この特定のテキストファイルについて、デフォルトのキーボードを取り除く方法がわかりません。私を助けてください。

4

5 に答える 5

3

これは古い質問ですが、同じことを探しているときにここに来ました。

これは、画面に表示されるビューの任意の数/ネストに対して機能します。

- (void) hideKeyboard: (UIView *) view {
    NSArray *subviews = [view subviews];
    for (UIView *subview in subviews){
        if ([subview isKindOfClass:[UITextField class]]) {
            [subview resignFirstResponder];
        }
        [self hideKeyboard: subview ];
    }
}

後で、より直感的な方法を見つけました。

[self.view endEditing:YES];
于 2010-10-15T08:30:03.230 に答える
2

でこれを処理できます-textFieldShouldBeginEditing:

このメソッドが NO を返す場合、キーボードは表示されません。

このメソッドで日付ピッカーを表示し、NO を返すだけです。

于 2009-11-11T06:08:47.203 に答える
1

おそらく、これには UITextField を使用しないでください。通常の UITableViewCell を使用し、タップ時に日付ピッカーで新しい UIViewController をプッシュします。

于 2009-03-16T10:41:57.067 に答える
1

私はちょうどこの同じ問題に取り組んできましたが、

私たちはいくつかのことを試しましたが、途中で本当にひどいコードやバグがたくさんありました。

はるかに簡単なオプションは、まだ持っていることUITextFieldですが、それをに設定すること.inputViewですDatePicker

ピッカーにはキーボードのような戻るボタンがないため、フィールドを送信するための適切な方法を見つけようとしています。

于 2011-03-04T04:52:45.157 に答える
0

ファーストレスポンダを辞任すると、キーボードが非表示になるはずです。私の推測では、コードのこの時点では textField は実際にはファーストレスポンダーではないため、辞任するように指示しても効果はありません。おそらく、それNSLogを確認するステートメントを挿入する必要があります。

于 2009-03-16T12:37:22.343 に答える