0

DatePicker 用のテキスト フィールドを持つ UITableViewCell があります。日付を保存するカスタム ボタンを作成する必要があります。しかし、UITableViewCell TextFields のいずれかを選択するたびに、ボタンが表示されます。どうしてこれなの?

保存できるように、テキストフィールドに「送信」しようとしています。

ありがとう

    - (void)textFieldDidBeginEditing:(UITextField *)dateFieldText
{    

    UIBarButtonItem *doneButton = [[UIBarButtonItem alloc]
                                   initWithTitle:@"Save Date"
                                   style:UIBarButtonItemStyleDone
                                   target:self
                                   action:@selector(flipView)];
    self.navigationItem.rightBarButtonItem = doneButton;
    UIDatePicker *datePicker = [[UIDatePicker alloc] init];
    datePicker.datePickerMode = UIDatePickerModeDateAndTime;
    [datePicker addTarget:self action:@selector(datePickerValueChanged:) forControlEvents:UIControlEventValueChanged];
    [self.dateFieldText setInputView:datePicker];


}

アップデート

if else ブロックを使用して問題を解決しました。

- (void)textFieldDidBeginEditing:(UITextField *)sender
{
    sender.delegate = self;
        if([sender isEqual:dateFieldText])
        {
            UIBarButtonItem *doneButton = [[UIBarButtonItem alloc]
                                           initWithTitle:@"Save"
                                           style:UIBarButtonItemStyleDone
                                           target:self
                                           action:@selector(saveDate)];
            self.navigationItem.rightBarButtonItem = doneButton;
            UIDatePicker *datePicker = [[UIDatePicker alloc] init];
            datePicker.datePickerMode = UIDatePickerModeDateAndTime;
            [datePicker addTarget:self action:@selector(datePickerValueChanged:) forControlEvents:UIControlEventValueChanged];
            [self.dateFieldText setInputView:datePicker];
        }
        else{
            UIBarButtonItem *submitButton = [[UIBarButtonItem alloc]
                                           initWithTitle:@"Done"
                                           style:UIBarButtonItemStyleDone
                                           target:self
                                           action:@selector(submitList)];
            self.navigationItem.rightBarButtonItem = submitButton;
        }  
    }

助けてくれてありがとう。

4

3 に答える 3

0

dataPicker を目的の TextField のみに設定する必要があります。つまり、if 条件を追加して、すべてのフィールドではなく、必要なフィールドにのみ datePicker を追加する必要があります。

于 2013-03-04T02:37:30.903 に答える
0

テーブル ビューのセルを再利用していますか? 日付フィールド用に新しいセルを作成し、他のセルとは異なる再利用識別子を与えることを検討してください。

于 2013-03-04T01:30:42.877 に答える
-1
- (void)textFieldDidBeginEditing:(UITextField *)sender
{
    sender.delegate = self;
        if([sender isEqual:dateFieldText])
        {
            UIBarButtonItem *doneButton = [[UIBarButtonItem alloc]
                                           initWithTitle:@"Save"
                                           style:UIBarButtonItemStyleDone
                                           target:self
                                           action:@selector(saveDate)];
            self.navigationItem.rightBarButtonItem = doneButton;
            UIDatePicker *datePicker = [[UIDatePicker alloc] init];
            datePicker.datePickerMode = UIDatePickerModeDateAndTime;
            [datePicker addTarget:self action:@selector(datePickerValueChanged:) forControlEvents:UIControlEventValueChanged];
            [self.dateFieldText setInputView:datePicker];
        }
        else{
            UIBarButtonItem *submitButton = [[UIBarButtonItem alloc]
                                           initWithTitle:@"Done"
                                           style:UIBarButtonItemStyleDone
                                           target:self
                                           action:@selector(submitList)];
            self.navigationItem.rightBarButtonItem = submitButton;
        }  
    }
于 2013-03-04T02:51:40.113 に答える