调出 UIPickerview 而不是键盘输入 iOS
Posted
技术标签:
【中文标题】调出 UIPickerview 而不是键盘输入 iOS【英文标题】:Bringing up a UIPickerview rather than keyboard input iOS 【发布时间】:2013-01-30 06:22:11 【问题描述】:基本上我想让用户点击文本字段,它会显示一个填充的选择器视图而不是键盘。这也需要一个带有完成按钮的工具栏,我想。我目前将该字段设置为输出和操作,仅此而已。我还有一个代码中的操作表,用于当用户提交某些内容时,如果这对可能为此使用操作表有任何影响。
我尝试研究这个主题,但 99% 的主题都与日期选择器而不是选择器视图(或非常旧的代码)有关。
这是它的外观图片以供参考。
【问题讨论】:
【参考方案1】:UITextField
现在有一个inputView
属性。在这里,您可以为其分配您想要的显示,包括 UIPickerView。您必须设置pickerview,并且必须在您的.h 中实现UITextFieldDelegate
和UIPickerViewDataSource
:
@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;
然后你应该很高兴。如果您需要更多信息,请查看文档以了解其他一些方法。
【讨论】:
我可以在文本字段按下操作方法中编辑此属性吗? 我可能会在 ViewController 的 viewDidLoad 中执行此操作。除非您要在 UIPicker 和普通键盘之间切换,否则每次按下按钮时都设置它确实没有意义。 它似乎有效。它带来了一个黑匣子而不是键盘。我不知道如何填充它或添加工具栏来检查是否已完成。有任何想法吗?我已经制作了 NSArray,但我不知道如何将它链接到它,因为它并不是真正的制作。 我编辑了我的答案来帮助你。如果您需要进一步的指导,请告诉我。 啊!我忘记了 pickerView.delegate = self;现在我的问题是添加工具栏和按钮。这就是我开始添加栏的方法。 1. UIToolbar *doneBar = [[UIToolbar alloc] init]; 2. doneBar.barStyle = UIBarStyleBlackTranslucent; 3. [pickerView addSubview:doneBar];有什么不显示的原因吗?以上是关于调出 UIPickerview 而不是键盘输入 iOS的主要内容,如果未能解决你的问题,请参考以下文章
使用 UITextField + UIPickerview 时禁用键盘输入