Mam pole uitext, gdzie jest zapisana data .. jak mogę wyświetlić na dole strony uidatepicker zamiast standardowej klawiatury? z góry dziękiiOS UITextField do edycji z uidatepicker
6
A
Odpowiedz
4
Upewnij się, że klasa implementuje protokół UITextFieldDelegate
. Następnie zastąpić metodę shouldBeginEditing
delegatem zwróci FALSE:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
//check if it is the UITextField you don't want the keyboard for
if (textField != dateTextField)
return TRUE;
//present your UIDatePicker
//see instructions below
//Return false to prevent the keyboard from appearing.
return FALSE;
}
Polecam przy użyciu innego UIViewController
zawierający UIDatePicker
i używać presentModalViewController
aby pokazać. Jest to zgodne z wytycznymi interfejsu użytkownika.
5
UITextField zapewnia mechanizm do tego. Powinieneś móc ustawić inny widok (jak datepicker) jako inputView. Zobacz ten post:
3
Można użyć następującego kodu;
//first of all, you have to declare the datePicker and then use the following code;
-(void)textFieldDidBeginEditing:(UITextField *)textField
{
[dateLabel resignFirstResponder]; //the textField that you will set the selected date
datePicker = [[UIDatePicker alloc] init]; //declared uidatepicker component
pickerViewDate = [[UIActionSheet alloc] initWithTitle:@"Select the date!"
delegate:self
cancelButtonTitle:nil
destructiveButtonTitle:nil
otherButtonTitles:nil];
datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0.0, 44.0, 0.0, 0.0)];
datePicker.datePickerMode = UIDatePickerModeDate; //set your spesific mode
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setFormatterBehavior:NSDateFormatterBehavior10_4];
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]]; //or another LocaleIdentifier instead of en_US
[dateFormatter setDateFormat:@"dd.MM.yyyy"]; //desired format
[datePicker addTarget:self action:@selector(dateChanged) forControlEvents:UIControlEventValueChanged]; //the function would be fired when user change the date in datePicker
//now preparing the toolbar which will be displayed at the top of the datePicker
pickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
pickerToolbar.barStyle=UIBarStyleBlackOpaque;
[pickerToolbar sizeToFit];
NSMutableArray *barItems = [[NSMutableArray alloc] init];
UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneButtonClicked)]; //barbutton item is "DONE" and doneButtonClicked action will be fired when user clicks the button.
[barItems addObject:flexSpace]; // set the left of the bar
[pickerToolbar setItems:barItems animated:YES];
[pickerViewDate addSubview:pickerToolbar];
[pickerViewDate addSubview:datePicker];
[pickerViewDate showInView:self.view];
[pickerViewDate setBounds:CGRectMake(0,0,320, 464)]; //you can change the position
}
oraz dodatkowe działania;
-(IBAction)dateChanged{
NSDateFormatter *FormatDate = [[NSDateFormatter alloc] init];
[FormatDate setLocale: [[NSLocale alloc]
initWithLocaleIdentifier:@"en_US"]];
[FormatDate setDateFormat:@"dd.MM.yyyy"];
dateLabel.text = [FormatDate stringFromDate:[datePicker date]];
}
-(BOOL)closeDatePicker:(id)sender{
[pickerViewDate dismissWithClickedButtonIndex:0 animated:YES];
[dateLabel resignFirstResponder];
return YES;
}
-(IBAction)doneButtonClicked{
[self closeDatePicker:self];
}
Powiązane problemy
- 1. iOS zaokrąglone UITextField z cieniem
- 2. Dostosuj UITextfield z UISearchbar - iOS
- 3. Pobierz datę i godzinę z UIDatePicker iOS
- 4. zawiesza aplikacji po edycji zwyczaj UITextField
- 5. Zmiana tła UITextField podczas edycji zaczyna się
- 6. Ustawianie TouchID "Enter Password" powrót do edycji UITextField
- 7. Dodawanie UIDatePicker jako inputView do textField w iOS 8
- 8. iOS - odrzucenie UIDatePicker przedstawiony jako inputView
- 9. Zmiana zachowania tła UITextField z iOS 4 na iOS 5
- 10. Interfejs Builder UIDatePicker
- 11. UIDatePicker z "zrobione" przycisk
- 12. UIDatePicker z UIToolbar
- 13. Zestaw SDK iOS: jak uzyskać datę z UIDatePicker?
- 14. Problemy z UIDatePicker w popover na iOS 8
- 15. Swift UIDatePicker do wprowadzania pola tekstowego - jak sprawić, aby UIDatePicker zniknął?
- 16. Biblioteka edycji wideo w IOS
- 17. Dostosowywanie UIDatePicker
- 18. Problem z UIDatePicker w iOS9
- 19. UIDatePicker w PopoverView na iPadzie
- 20. dodaj przycisk do uitextfield
- 21. Dodaj UITextField do UIToolbar
- 22. iOS 5 - Ustawianie minimalnej daty UIDatePicker na "dziś"
- 23. Jak utworzyć niestandardową kontrolę UIDatePicker
- 24. IOS: UIDatePicker renderuje się słabo na czarnym tle
- 25. Dodaj etykietę do UITextField
- 26. Czy mogę zlokalizować UIDatePicker?
- 27. Klawiatura znika sporadycznie podczas edycji z użyciem IOS 8
- 28. Jak wybrać UITextField?
- 29. Jak dodać UILongPressGestureRecognizer do UITextField?
- 30. Używanie kdiff3 do edycji różnic z git
jest problem z tym podejściem, jeśli chcesz tylko datepicker na dole ekranu, a nie obejmujące cały ekran. Nie można uczynić swojego modulowanego kontrolera widoku przezroczystym, ponieważ widoki bazowe tam nie będą. http://stackoverflow.com/questions/849458/transparent-modal-view-on-navigation-controller – kris