UIPickerViewselect并隐藏

你如何使一个UIPickerView像一个webview的行为,其中有一个下拉select框,而不是像往常一样的网站下降, iphone使它成为一个UIPickerView中的所有select。当你select一个,一个检查在您的select旁边变得可见并且改变下拉框的值。 你怎么把“完成”button上的UIPickerViewclosuresUIPickerView

我已经知道[pickerview setHidden:YES]是用来隐藏pickerview的方法。 我只是不知道如何在UIPickerView包含“完成”button。

问候,克里斯

“完成”button被放置在UIToolBar中。

使用下面的UIToolBar方法添加“完成”button。

 - (void)setItems:(NSArray *)items animated:(BOOL)animated { UIToolbar* mypickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 56)]; mypickerToolbar.barStyle = UIBarStyleBlackOpaque; [mypickerToolbar sizeToFit]; NSMutableArray *barItems = [[NSMutableArray alloc] init]; UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil]; [barItems addObject:flexSpace]; UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(DatePickerDoneClick)]; [barItems addObject:doneBtn]; [mypickerToolbar setItems:barItems animated:YES]; } 

这段代码将作为键盘滑出一个select器视图,并在其上面附加一个完成button。 基本上,你要设置一个inputAccessoryView与您的input字段。 您应该在input字段的触发事件中调用此方法。

 - (IBAction)showYourPicker:(id)sender { // create a UIPicker view as a custom keyboard view UIPickerView* pickerView = [[UIPickerView alloc] init]; [pickerView sizeToFit]; pickerView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight); pickerView.delegate = self; pickerView.dataSource = self; pickerView.showsSelectionIndicator = YES; self.yourPickerView = pickerView; //UIPickerView yourTextField.inputView = pickerView; // create a done view + done button, attach to it a doneClicked action, and place it in a toolbar as an accessory input view... // Prepare done button UIToolbar* keyboardDoneButtonView = [[UIToolbar alloc] init]; keyboardDoneButtonView.barStyle = UIBarStyleBlack; keyboardDoneButtonView.translucent = YES; keyboardDoneButtonView.tintColor = nil; [keyboardDoneButtonView sizeToFit]; UIBarButtonItem* doneButton = [[[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleBordered target:self action:@selector(pickerDoneClicked:)] autorelease]; [keyboardDoneButtonView setItems:[NSArray arrayWithObjects:doneButton, nil]]; // Plug the keyboardDoneButtonView into the text field... yourTextField.inputAccessoryView = keyboardDoneButtonView; [pickerView release]; [keyboardDoneButtonView release]; } 

最后,你的Donebutton调用“pickerDoneClicked”方法,你应该添加[yourTextField resignFirstResponder]; 这将隐藏select器视图。