我试图调出一个选取器视图而不是键盘放在文本字段中,但我的选取器视图没有显示。
#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帖子中取了这个例子:
发布于 2014-08-13 20:32:33
希望能对你有所帮助
- (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;
}发布于 2014-08-13 20:32:45
这是I使用UIPickerViews的方式,示例代码如下:
UIPickerView* genderPicker = [[UIPickerView alloc] init];
genderPicker.delegate = self;
genderPicker.dataSource = self;在初始化UITextField (在我的例子中是registrationGenderField)之后:
registrationGenderField.inputView = genderPicker;然后是delegates和dataSources:
- (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;
}发布于 2014-08-13 20:26:36
你只需要初始化你的选择器视图即可;
并将其委托设置为self,并在.h文件中添加uipickerviewdelegate委托和数据源
然后在文本字段中开始编辑添加textField集合输入视图:拾取器;
还实现了textfieldshouldreturn
https://stackoverflow.com/questions/25285968
复制相似问题