【问题标题】:Bringing up a UIPickerview rather than keyboard input iOS调出 UIPickerview 而不是键盘输入 iOS
【发布时间】:2013-01-30 06:22:11
【问题描述】:

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

我尝试研究这个主题,但 99% 的主题都与日期选择器而不是选择器视图(或非常旧的代码)有关。

这是它的外观图片以供参考。

【问题讨论】:

    标签: ios ios5 uipickerview uikeyboard uiactionsheet


    【解决方案1】:

    UITextField 现在有一个inputView 属性。在这里,您可以为其分配您想要的显示,包括 UIPickerView。您必须设置pickerview,并且必须在您的.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;
    

    然后你应该很高兴。如果您需要更多信息,请查看文档以了解其他一些方法。

    【讨论】:

    • 我可以在文本字段按下操作方法中编辑此属性吗?
    • 我可能会在 ViewController 的 viewDidLoad 中执行此操作。除非您要在 UIPicker 和普通键盘之间切换,否则每次按下按钮时都设置它确实没有意义。
    • 它似乎有效。它带来了一个黑匣子而不是键盘。我不知道如何填充它或添加工具栏来检查是否已完成。有任何想法吗?我已经制作了 NSArray,但我不知道如何将它链接到它,因为它并不是真正的制作。
    • 我编辑了我的答案来帮助你。如果您需要进一步的指导,请告诉我。
    • 啊!我忘记了 pickerView.delegate = self;现在我的问题是添加工具栏和按钮。这就是我开始添加栏的方法。 1. UIToolbar *doneBar = [[UIToolbar alloc] init]; 2. doneBar.barStyle = UIBarStyleBlackTranslucent; 3. [pickerView addSubview:doneBar];有什么不显示的原因吗?
    猜你喜欢
    • 1970-01-01
    • 2017-10-30
    • 2012-04-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多