1

私は(3つの別々の行)UITextFieldsの中に3つあります。最初の 2 つはテキスト入力を必要とするUITableView標準ですが、3 番目はデータ入力を必要とし、 .UITextFieldsUIDatePicker

問題の説明: 画面が読み込まれると、3 番目のテキスト フィールドが自動的に編集を開始し、日付ピッカーがポップアップします。これは面倒です。何かを行う前に、ユーザーが入力を開始するのを画面で待機させたいだけです。私のviewDidLoadコードの下に見つけてください。あなたの助け/洞察は大歓迎です

- (void)viewDidLoad
{
[super viewDidLoad];

[scrollView setContentSize:CGSizeMake(320, 910)];

expirationDatePicker.hidden = YES;
expirationDatePicker.date = [NSDate date];
[expirationDatePicker addTarget:self
                         action:@selector(changeDateValue:)
               forControlEvents:UIControlEventValueChanged];

[self configureView];
}

- (void)configureView
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
    NSString *documentsPath = [paths objectAtIndex:0]; //Get the docs directory 
    NSString *filePath = [documentsPath stringByAppendingPathComponent:[self.detailItem cardName]];
    filePath = [filePath stringByAppendingPathExtension:@".png"];
    NSData *pngData = [NSData dataWithContentsOfFile:filePath];
    imgPickerButton.imageView.image = [UIImage imageWithData:pngData];
}

画面が読み込まれた直後に撮影したスクリーンショットを添付します。3 番目のテキスト フィールドが編集モードになっていることがわかります。

テキストフィールドのスクリーンショット

4

2 に答える 2

1

これを行う 1 つの方法は、日付テキスト フィールドをカスタム UITableViewCell の UIButton に変換し、ユーザーがボタンに触れたときに日付ピッカーを表示することです。

ユーザーが日付の選択を完了したら、日付を反映するようにボタンのタイトルを変更します。

于 2012-06-05T03:58:24.250 に答える
0

わかりました-問題が見つかりました。私のテーブルビューにはカスタムUITableViewCellsがあり、それらのカスタムセルには何らかの理由でこのメソッドがありました-

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
    [super setSelected:selected animated:animated];
    [self.textField becomeFirstResponder];
}

これにより、個々のテーブルビューセルのテキスト フィールドが自動的に編集モードに入っていました。このコードを削除すると、それが停止しました。

于 2012-06-11T18:10:36.403 に答える