启动UIPickerview而不是键盘输入iOS

时间:2013-01-30 06:22:12

标签: ios5 uipickerview uiactionsheet uikeyboard

基本上我想让用户点击文本字段,它会显示一个填充的选择器视图而不是键盘。这也需要一个带有完成按钮的工具栏以及Im假设。我目前将字段设置为输出和操作,而不是更多。我还有一个代码中的动作表,用于当用户提交内容时,如果这对于可能使用动作表也有任何不同。

我尝试过研究这个主题,但99%的主题都是使用datepickers而不是pickerviews(或非常旧的代码)。

这是一张图片,供参考。

1 个答案:

答案 0 :(得分:36)

UITextField现在有一个inputView属性。在这里,您可以为其指定一个包含UIPickerView的显示。您必须设置选择器视图,并且必须在.h中实现UITextFieldDelegateUIPickerViewDataSource

@interface ViewController : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate>

然后创建选择器视图并将其分配给文本字段。

UIPickerView *pickerView = [[UIPickerView alloc] init];
pickerView.dataSource = self;
pickerView.delegate = self;
// ... ...
self.pickerTextField.inputView = pickerView;

因为您实现了UIPickerView接口,所以现在必须实现这些方法:

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;

然后你应该好好去。如果您需要更多信息,请查看其他方法的文档。