首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PickerView未显示

PickerView未显示
EN

Stack Overflow用户
提问于 2014-08-13 20:18:26
回答 3查看 187关注 0票数 0

我试图调出一个选取器视图而不是键盘放在文本字段中,但我的选取器视图没有显示。

代码语言:javascript
复制
#import "SettingsViewController.h"
#import "FindClasses.h"

@interface SettingsViewController ()
@property (weak, nonatomic) IBOutlet UIBarButtonItem *saveButton;
@property (weak, nonatomic) IBOutlet UITextField *classTextField;
@property (strong, nonatomic) UIPickerView *picker;
@property (nonatomic, strong) FindClasses *finder;
@property (nonatomic, strong) NSArray *itemsArray;
@end

@implementation SettingsViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    NSArray *itemsArray = [self.finder findClassesInTimetable];
    // Do any additional setup after loading the view.
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)presentPicker {
    CGRect frame = CGRectMake(0, 40, 0, 0);
    UIPickerView *picker = [[UIPickerView alloc] initWithFrame:frame];
    picker.delegate = self;
    picker.dataSource = self;
    // TODO: animate this on screen
    [self.view addSubview:picker];
}

- (void)textFieldDidBeginEditing:(UITextField *)textField {
    [self presentPicker];
}

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
    return 1;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
    return [self.itemsArray count];  //where items is your array of items
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row inComponent:(NSInteger)component {
    return [self.itemsArray objectAtIndex:row];
}

谁能告诉我我哪里做错了?我从另一篇Stackoverflow帖子中取了这个例子:

EN

回答 3

Stack Overflow用户

发布于 2014-08-13 20:32:33

希望能对你有所帮助

代码语言:javascript
复制
 - (void)presentPicker {
        UIPickerView *picker = [[UIPickerView alloc] init];
        picker.delegate = self;
        picker.dataSource = self;
        // TODO: animate this on screen
        classTextField .delegate = self;
        classTextField.inputView = picker;
    }

 - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField  {
       [textField becomeFirstResponder];
       return YES;
    }
票数 1
EN

Stack Overflow用户

发布于 2014-08-13 20:32:45

这是I使用UIPickerViews的方式,示例代码如下:

代码语言:javascript
复制
UIPickerView* genderPicker = [[UIPickerView alloc] init];

genderPicker.delegate = self;

genderPicker.dataSource = self;

在初始化UITextField (在我的例子中是registrationGenderField)之后:

代码语言:javascript
复制
registrationGenderField.inputView = genderPicker;

然后是delegates和dataSources:

代码语言:javascript
复制
- (NSString *) pickerView:(UIPickerView *)pickerView
          titleForRow:(NSInteger)row
         forComponent:(NSInteger)component {

switch (row) {

        case 0:
            return @"Gender";
            break;

        case 1:
            return @"Male";
            break;

        case 2:
            return @"Female";
            break;

        default:
            return @"Gender";
            break;
    }
}

- (void) pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {

    switch (row) {

        case 0:
            registrationGenderField.text = @"";
            break;

        case 1:
            registrationGenderField.text =  @"Male";
            break;

        case 2:
            registrationGenderField.text =  @"Female";
            break;

        default:
            registrationGenderField.text =  @"";
            break;
    }
}



- (NSInteger) numberOfComponentsInPickerView:(UIPickerView *)pickerView {

    return 1;
}

- (NSInteger) pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {

    return 3;
}
票数 1
EN

Stack Overflow用户

发布于 2014-08-13 20:26:36

你只需要初始化你的选择器视图即可;

并将其委托设置为self,并在.h文件中添加uipickerviewdelegate委托和数据源

然后在文本字段中开始编辑添加textField集合输入视图:拾取器;

还实现了textfieldshouldreturn

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25285968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档