私のアプリケーションには、8 つのテキストフィールドを含むフォームのようなビューがあります。そのうちの 2 つはピッカーによって入力され、残りは通常の heyboard の入力によって入力されます。ピッカー行が選択されたとき、または戻るボタンが押されたときに、対応するテキストがテキストフィールドに入力される必要があります。
これを適切に実装する方法についてアドバイスをお願いします。また、選択が行われた後/リターンが押された後にピッカー/キーボードが閉じられるようにします。
hereに似たものに対する答えが見つかりました。そして、2 つのピッカー テキスト フィールドを機能させることができましたが、残りのキーボードを表示させることができません。textFieldShouldBeginEditing メソッドをオーバーライドしているためだと思います。それを回避するためのアイデアはありますか?textFieldShouldBeginEditing 内からデフォルトのメソッドを呼び出すことはできますか?? textFieldShouldBeginEditing の最後の行のコメントを外すと、クラッシュすることに注意してください...
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
currentTextField = textField;
if (textField == self.pickerField1) {
currentArray = self.array1;
[pickerView reloadAllComponents];
pickerView.hidden = NO;
[self animatePickerViewIn];
return NO;
}
if (textField == self.pickerField2){
currentArray = self.array2;
[pickerView reloadAllComponents];
pickerView.hidden = NO;
[self animatePickerViewIn];
return NO;
}
// else {
// [currentTextField becomeFirstResponder];
// return NO;
// }
- (void)pickerView:(UIPickerView *)pickerView
didSelectRow:(NSInteger)row inComponent: (NSInteger)component
{
[currentTextField setText:[currentArray objectAtIndex:row]];
[currentTextField resignFirstResponder];
pickerView.hidden = YES;
}
ありがとう!