私はUIPickerView
をinputView
のUITextField
として使用する方法について多くのことを読みました。問題は、UIPickerView
をタップするとUITextField
を呼び出すことができるということです。ただし、私のアプリは常にUIPickerView
が表示された状態でロードされます。 viewDidLoad
のmyownpickerview.hidden = YES;
を変更しようとしましたが、UITextField
をクリックすると問題が発生します。表示されず、複数回クリックすると、デバッガーにエラーが表示されます。
誰かが私を正しい方向に向けることができますか? UIPickerView
をタップした後に表示されるのはUITextField
のみです
私は今までで初めてのiOSアプリの開発に取り組んでいます。しばらくお待ちください。ありがとう=)
これを試してください、それはうまく動作し、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];
この
このように使用して、
// 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];}