0

ビューにいくつかの UITextField コントロールがあります。その一つがカレンダーです。ユーザーがテキストフィールドをクリックすると、カレンダーが表示されます。別のテキストフィールド内でユーザーがタブを押すと、問題が発生します。タブ ボタンは、すべてのテキスト フィールド コントロールを反復処理してから、カレンダーを表示します。

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
    BOOL shouldShowKeyboard = YES;

    if(textField.tag == PLANTED_DATE_TEXTFIELD) // PLANTED_DATE_TEXTFIELD is 1 
    {
        [self.view addSubview:calendar];
        shouldShowKeyboard = NO;

    }

    return shouldShowKeyboard;
}

ユーザーがタブを押すと、UITextfield コントロールごとに textFieldShouldBeginEditing が 4 回起動されます。これにより、表示されたくないカレンダーが生成されます。

4

1 に答える 1

1

答えは次のとおりです。

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
    return YES;
}



-(IBAction) textFieldEditingChange:(id) sender
{
    UITextField *textField = (UITextField *) sender;
    [textField resignFirstResponder];

    [self.view addSubview:calendar];

}

textFieldEditingChange は、UITextFieldeditingDidBegin イベントに接続されています。

于 2013-02-18T16:39:05.660 に答える