Mam pole tekstowe w moim UI, że gdy jest wybrany prezentuje UIDatePicker zamiast domyślnej klawiatury, w jaki sposób można skonfigurować przycisk jak na odrzucenie kompletacji, gdy użytkownik jest zrobione?iOS - odrzucenie UIDatePicker przedstawiony jako inputView
Odpowiedz
Co mam zrobić, to mój inputView jako widok niestandardowy, który zawiera UIDatePicker
i pasek narzędzi nad nim z przyciskiem "Gotowe" połączonym z metodą, która wywołuje metodę delegata, aby powiedzieć obiektowi, który jest właścicielem UITextField
, aby odrzucić "klawiatura" dzwoniąc pod numer resignFirstResponder
.
Zrobiłem podobną rzecz, gdy stworzyłem widok za pomocą przycisku i UIDatePicker
, a następnie przedstawiłem ten widok zamiast samego UIDatePicker
. Następnie przycisk jest po prostu podłączony do IBAction
, który przesuwa widok.
W ten sposób przycisk przechodzi do widoku UIDatePicker
i wygląda "połączony" z użytkownikiem. Możesz nawet zdefiniować ten UIView
w swoim stalówce i używać addSubview:
w środowisku wykonawczym.
Utwórz UIView (mianowicie customDatePickerView) iw tym widoku utwórz datepicker i zakończony przycisk oraz przycisk anulowania w Xib. W delegata textField:
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
if (textField == textfieldName) {
[textfieldName resignFirstResponder];
//show the view
self.customDatePickerView.hidden = NO;
}
}//dismisses keyboard
Funkcja na Date Picker Wartość Zmienione
- (IBAction)onDatePickerClick:(id)sender {
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"MM/dd/YYYY"];
NSDate *selectedDate = [self.wellRecordDatePicker date];
NSString *recordDate = [dateFormatter stringFromDate:selectedDate];
self.yourTextfieldName.text = recordDate;
}
- (IBAction)onDoneBtnClick:(id)sender
{
self.customDatePickerView.hidden = YES;
}
- (IBAction)onCancelBtnClick:(id)sender
{
self.customDatePickerView.hidden = YES;
}
nadzieję, że to pomoże.
Problem ten można rozwiązać poprzez dodanie tego
[self.view endEditing:YES];
Dodaj to gdzie chcesz, aby zamknąć wyboru daty jak dodałem to na gest kranu
Na viewDidLoad dodał Tapgesture
UITapGestureRecognizer *gesRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)]; // Declare the Gesture.
gesRecognizer.delegate = self;
[self.view addGestureRecognizer:gesRecognizer];
Po dodawanie tego na viewdidLoad Dodaj tę metodę, aby wykryć rozpoznawanie gestów.
Proszę podać kod do ustawienia elementu UIBarButtonItem na pasku UIToolBar? – 8vius
@ 8vius - to naprawdę nie jest tutaj pytanie. Jeśli naprawdę potrzebujesz pomocy, sugeruję przeczytanie dokumentów dla 'UIBarButtonItem' i' UIToolbar', a jeśli wciąż tkwisz w sieci, zadaj inne pytanie. – mattjgalloway
@mattjgalloway Robię to w ten sposób, ale wywołanie 'resignFirstResponder' nie powoduje wyłączenia klawiatury niestandardowego widoku wejściowego – onmyway133