ビューにいくつかの 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 回起動されます。これにより、表示されたくないカレンダーが生成されます。