Подтвердить что ты не робот

UIPickerView как inputView UITextField

Я много читал о том, как использовать UIPickerView как inputView моего UITextField. Дело в том, что я могу вызвать UIPickerView, когда я нажимаю на UITextField. Однако мое приложение всегда загружается с показанным UIPickerView. Я уже пробовал изменить myownpickerview.hidden = YES; в viewDidLoad, но это вызывает проблемы, когда я нажимаю на UITextField. Он не будет отображаться, и если я нажму несколько раз, отладчик покажет, что произошла ошибка.

Может ли кто-нибудь указать мне в правильном направлении? Мне нужно только показать UIPickerView после того, как я коснусь UITextField

Я все еще работаю над своим первым приложением iOS. Будьте терпеливы. Спасибо =)

4b9b3361

Ответ 1

Попробуйте это, он отлично работает, поместите его в viewdidload.

yourpicker = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 50, 100, 150)];
    [yourpicker setDataSource: self];
    [yourpicker setDelegate: self];
    yourpicker.showsSelectionIndicator = YES;
    self.yourtextfield.inputView = yourpicker;

не [self.view addSubview: yourpicker]; this

Ответ 2

Используйте вот так,

 // Picker
UIPickerView *picker = [[UIPickerView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width,150)];
picker.dataSource = self;
picker.delegate = self;

// Tool bar
UIToolbar *pickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width,35)];
pickerToolbar.barStyle = UIBarStyleDefault;

// Bar button
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(pickerDoneButtonTapped:)];
UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
[pickerToolbar setItems:@[flexSpace,doneButton]];

self.selectedLockerTextFiled.inputAccessoryView = pickerToolbar;
self.selectedLockerTextFiled.inputView = picker;

Ниже приведен код для выполненных действий кнопки,

-(void)pickerDoneButtonTapped:(id)picker{
    [self.view endEditing:YES];}